有一个问题,似乎无法在互联网上的任何地方找到答案。

我在Unity中有4个子状态机(请参见附图),并且在播放时,如果默认为手枪状态机并且可以很好地播放空闲动画。

但是我想要一些代码,在该代码中,用户按下M可以切换到步枪子状态机。

c# - 快速切换状态机Unity C#-LMLPHP

我已经尝试过animator.Play了,但这似乎没有用,所以我有点卡住了。以下是我尝试过的不起作用:

  if(Input.GetKeyDown(KeyCode.M))
    {
        animator.Play("Rifle",0);
    }


有任何想法吗?

最佳答案

单位中的每个默认按钮都有其自己的“名称”,称为输入轴,您可以在其中调用(即“ fire1”,“ jump”)

这在移动应用程序中特别有用,在移动应用程序中,您可以设置这些按钮来操作虚拟控制器中的每个屏幕按钮。

如果要添加新的虚拟轴,请转到“编辑”->“项目设置”->“输入”菜单

see here

这是一个几乎类似于您的代码的示例

var bullet : GameObject;
var shootPoint : Transform;

 function Update (){
     if(Input.GetKeyDown("Fire1")) || Input.GetKeyDown("space")){
      //example
         Instantiate(bullet, shootPoint.position, tranform.rotation);

      //you could put the code on how you shoot here
      }


请记住,每帧调用一次更新

希望这可以帮助

关于c# - 快速切换状态机Unity C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32387192/

10-10 02:35