Unity 2D, как переместить объект между двумя позициями

У меня есть две возможности posA и posB. Я хочу переместить своего игрока между этими двумя положениями по нажатию кнопки. Используя Vetor3.Lerp, игрок перемещается только один раз, но второй ход не сработал.

    using UnityEngine;
using System.Collections;

public class PlayerTurn : MonoBehaviour {

    public Transform leftPos;
    public Transform rightPos;

    public float speed = 5;

    // Use this for initialization
    void Start () {
    }

    // Update is called once per frame
    void Update () {
    }

    public void functionForButton(){
            transform.position = Vector3.Lerp (leftPos.position, rightPos.position, speed);
    }
}

экран

1 ответ

Решение

Вы что-то напутали, Vector.lerp используется в Update, так как это функция, которая должна работать для каждого кадра, пока он не закончится.
Он работает от "Source" до "Destination", поэтому при повторном нажатии он все равно будет работать от источника до места назначения. Если вы хотите изменить его, вам нужно спроектировать код так, чтобы он менялся местами. как установка флага или создание другой функции. Это хорошее руководство от разработчиков Unity по использованию Lerp.

Vector3 Lerp Video
Справочник по сценариям Vector3 Lerp

Другие вопросы по тегам