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.