有一个问题,似乎无法在互联网上的任何地方找到答案。
我在Unity中有4个子状态机(请参见附图),并且在播放时,如果默认为手枪状态机并且可以很好地播放空闲动画。
但是我想要一些代码,在该代码中,用户按下M可以切换到步枪子状态机。
我已经尝试过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/