transform.localposition有很大的延迟

时间:2018-06-03 19:39:37

标签: c# animation unity3d

我使用动画移动我的播放器,并且我使用父游戏对象来移动播放器。但是当我在脚本中更新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;
    }
}

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。这真的很简单而且很愚蠢。我在动画中调用了AnimationFinished方法,但是当我调用它时我的动画没有结束。这就是为什么localposition不会更新,它正在等待动画完成。