InputAction的使用

感觉Unity中InputAction的使用,步步都是坑。

需求点介绍

当用户长按0.5s 键盘X或者VR left controller primaryButton (即X键)时,显示下一个图片。

步骤总览

  1. 创建InputAction资产
  2. 将该InputAction资产绑定到某个GameObject上
  3. 在对应的script中,接收InputAction触发的事件,完成"显示下一个图片"的逻辑

细节

  1. 创建InputAction资产

  2. 将该InputAction资产绑定到某个GameObject上。

如果Behaviour是send messages或者broadcast messages,那这个GameObject或者其子GameObject包含Component,这个Component有需要检测InputAction输入的function。

如果Behaviour是Invoke Unity Event,那好像绑定在哪个GameObject都没有关系,只要Player Input这个component能在function之前被初始化就行。

至于Behavior如何设置,见官网, 不过官网说得也不明不白的。

在我的例子中,我需要设置成Invoke Unity Events,然后像对待UI控件一样,显性绑定才能触发function的运行。Send/Broadcast Messages都不行。

  1. 在对应的script中,接收InputAction触发的事件,完成"显示下一个图片"的逻辑
csharp 复制代码
    public void ChangeStrokeImage(InputAction.CallbackContext context)
    {   if (context.action.name == "DrawNext") {
            if (context.performed) // Otherwise this will be triggered three times. 
            {
                if (textures != null && textures.Length > 0)
                {
                    currentIndex = currentIndex  % textures.Length;
                    strokeRawImage.texture = textures[currentIndex];
                    currentIndex = currentIndex + 1;
                }
            }
        }
    }
相关推荐
zyh______5 小时前
unity值属性修改步骤
unity·游戏引擎
小贺儿开发7 小时前
Unity3D 四星探秘:手势互动演示
科技·unity·人机交互·科普·硬件·leap motion·互动
金山几座7 小时前
C#学习记录-类(Class)
开发语言·学习·c#
码界奇点10 小时前
基于模块化架构的Unity游戏开发框架设计与实现
java·c++·unity·架构·毕业设计·源代码管理
The Shio10 小时前
OptiByte:一个可视化协议设计与多语言代码生成工具
网络·物联网·c#·.net·业界资讯
我是唐青枫11 小时前
C#.NET Pipelines 深入解析:高性能 IO 管道与零拷贝协议处理实战
c#·.net
蓝天星空11 小时前
跨平台开发语言对比
开发语言·c#·.net
阿蒙Amon11 小时前
C#常用类库-详解JetBrains.Annotations
前端·数据库·c#
老鱼说AI13 小时前
《深入理解计算机系统》(CSAPP)2.2:整数数据类型与底层机器级表示
开发语言·汇编·算法·c#
历程里程碑14 小时前
40 UDP - 2 C++实现英汉词典查询服务
linux·开发语言·数据结构·c++·ide·c#·vim