您的位置:首页 > 文旅 > 美景 > Unity 输入模块 之 初识新输入系统(其实也不新)

Unity 输入模块 之 初识新输入系统(其实也不新)

2024/12/23 9:49:48 来源:https://blog.csdn.net/2301_77947509/article/details/141112833  浏览:    关键词:Unity 输入模块 之 初识新输入系统(其实也不新)

本文仅作笔记学习和分享,不用做任何商业用途

本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​

1.介绍

当年的宣传网页Unity新一代输入系统介绍 - 技术专栏 - Unity官方开发者社区

老输入系统每次配置新项目都需要写一大堆代码,是否显得过于累赘?

新输入系统可以基于unity Event也就是事件监听来处理玩家的点击,我就贼中意事件监听这个方式,简单方便快捷可拓展

unity保姆级教程 之 UnityEvent可视化事件类-CSDN博客  (未重置)

新输入系统的优势:

2.导入并认识新输入系统

unity注册表直接搜索安装即可

值得注意的是,如果新老输入系统并用的话可以如下操作,当然在2022.3稳定版本会自动Both

3.新的api(用键盘举例)

写代码前要引用新的命名空间

using UnityEngine.InputSystem;

输入监听 

用这个api,注意是Action有参无返回值类型的泛型委托,我直接用了lambda表达式添加了函数(C# 匿名函数与Lambda表达式-CSDN博客)

   Keyboard keyboard = Keyboard.current;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){keyboard.onTextInput += (inputKey) => {print("按下了"+inputKey );         };}

输入控制

    Keyboard keyboard = Keyboard.current;// Start is called before the first frame updatevoid Start(){//按下if(keyboard.rKey.wasPressedThisFrame){ //处理按下逻辑}//抬起if(keyboard.rKey.wasReleasedThisFrame) { //处理释放逻辑}//长按if(keyboard.rKey.isPressed){ //处理长安逻辑}             }

 4.质疑

这不是还需要写代码吗?除了换了api这和老输入系统有什么区别?

因为我要水文啊,所以可视化配置文件留到下一篇

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com