transform.localposition имеет огромную задержку - PullRequest
0 голосов
/ 03 июня 2018

Я перемещаю игрока, используя анимацию, и использую родительский игровой объект для перемещения игрока.Но когда я обновляю transform.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 голосов
/ 04 июня 2018

Я решил проблему.Это было действительно просто и глупо.Я вызвал метод AnimationFinished внутри анимации, но моя анимация не закончилась, когда я его вызвал.Вот почему местное положение не будет обновляться, оно ожидало завершения анимации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...