我使用动画移动我的播放器,并且我使用父游戏对象来移动播放器。但是当我在脚本中更新transform.localposition时,它会有很大的延迟。在对象实际进入我在脚本中设置的localposition之前大约需要1秒。任何人都可以帮我解决这个问题吗?
private Animator anim;
private bool anim_Started;
private bool anim_Finished;
// Use this for initialization
void Start () {
anim = GetComponent<Animator>();
}
void Update() {
if (Input.GetKeyDown(KeyCode.W)) {
anim_Started = true;
anim_Finished = false;
anim.Play("MoveUp");
}
}
void AnimationFinished() {
anim_Finished = true;
}
void LateUpdate() {
if (anim_Finished & anim_Started){
transform.parent.position = transform.position;
transform.localPosition = Vector3.zero;
anim_Started = false;
anim_Finished = false;
}
}
答案 0 :(得分:0)
我已经解决了这个问题。这真的很简单而且很愚蠢。我在动画中调用了AnimationFinished方法,但是当我调用它时我的动画没有结束。这就是为什么localposition不会更新,它正在等待动画完成。