感觉Unity中InputAction的使用,步步都是坑。
当用户长按0.5s 键盘X或者VR left controller primaryButton (即X键)时,显示下一个图片。
创建InputAction资产
将该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都不行。
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;
}
}
}
}