0
如果我不碰撞模型(不是玩家)在場景中散步,腳本工作正常。
但是,如果我用角色控制器撞擊模型,模型將在它遇到等待動畫狀態後繼續移動。Unity transform.translate永不停止
爲什麼會發生這種情況?我該如何解決它?
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");
}
}
}
對象是否附着了剛體?即使您沒有在代碼中移動對象,物理交互仍然適用。 – Serlite
你試過這個嗎?將'Translate'改爲'transform.Translate(0,0,speed * Time.deltaTime,Camera.main.transform);'。 – Hristo
我現在拆下了剛體並正確工作。謝謝Serlite! – CsharpBeginner