【发布时间】:2017-04-10 20:47:12
【问题描述】:
如果我不撞到模型(不是玩家)在场景中走动,那么脚本可以正常工作。
但是如果我用我的角色控制器碰撞模型,一旦模型进入等待动画状态,它就会继续移动。
为什么会这样?我该如何解决?
public class MoveMan2 : MonoBehaviour
{
public float speed = 0.85f;
public Animator anim;
void Start()
{
anim = GetComponent<Animator>();
InvokeRepeating("SetWalkMode",5.0f,20.0f);
}
void SetWalkMode()
{
anim.Play("SkitsWalk", -1, 0f);
}
void Update()
{
if (anim.GetCurrentAnimatorStateInfo(0).IsName("SkitsWalk"))
{
Debug.Log("Skits walking");
transform.Translate(0, 0, speed * Time.deltaTime);
}
if (anim.GetCurrentAnimatorStateInfo(0).IsName("Wait"))
{
Debug.Log("Waiting");
}
}
}
【问题讨论】:
-
对象是否附有刚体?即使您没有在代码中移动对象,物理交互仍然适用。
-
你试过了吗?将
Translate更改为transform.Translate(0, 0, speed * Time.deltaTime, Camera.main.transform);。 -
我移除了刚体,它现在可以正常工作了。谢谢 Serlite!