在Animator控制器中,勾选“Apply Root Motion”选项,这将导致Animator控制物体的global transform而不是local transform。要使用local transform,需要在代码中手动设置localScale属性。以下是一个示例:
public class MyScript : MonoBehaviour
{
private Vector3 originalScale;
private void Start()
{
originalScale = transform.localScale; //记录初始的localScale
}
private void Update()
{
//在Animator中获取scaledTime值,并使用它来调整物体的localScale
float scaledTime = GetComponent().GetCurrentAnimatorStateInfo(0).normalizedTime % 1;
transform.localScale = originalScale * (1 + scaledTime);
}
}