实际上我是团结的新人,试图顺利学习线性翻译。我使用两个立方体并尝试相互平滑地转换。
public class LinearTrasnformation : MonoBehaviour {
public GameObject cube1, cube2;
// Use this for initialization
void Start () {
//cube1.transform.position = new Vector3 (cube1.transform.position.x,cube1.transform.position.y,cube1.transform.position.z);
}
// Update is called once per frame
void Update () {
if(Input.GetKey(KeyCode.UpArrow)){
cube1.transform.position = Vector3.Lerp (cube2.transform.position,cube1.transform.position,0.5f*Time.deltaTime);
}
}
}
答案 0 :(得分:1)
Lerp的最后一个组成部分可以被认为是lerp完成的一部分(从0到1)。您还需要存储多维数据集1的原始位置,否则将使用多维数据集的新位置不断更新lerp。你应该做...
float t = 0;
Vector2 origpos;
void Start() {
}
void Update () {
if(Input.GetKeyDown(KeyCode.UpArrow))
origpos = cube1.transform.position; //store position on keydown
if(Input.GetKey(KeyCode.UpArrow)){
t += Time.deltaTime;
cube1.transform.position = Vector3.Lerp(origpos, cube2.transform.position, t/2f); // where 2f is the amount of time you want the transition to take
}
else if (Input.GetKeyUp(KeyCode.UpArrow)
t = 0; // reset timer on key up
}