在X轴的两个点之间移动对象
本文关键字:两个 之间 移动 对象 | 更新日期: 2023-09-27 17:50:48
我试着写代码,使对象移动周围点让我们假设(0,0)和(10,0)这是我试图写的代码,对于任何建议的发展,不要犹豫评论:)。
using UnityEngine;
using System.Collections;
public class walk2 : MonoBehaviour {
// Use this for initialization
void Start () { }
void Update () {
float move = 1.00f;
for ( int i = 0 ; i < 10 ; i++){
transform.position = new Vector2 (transform.position.x + move, transform.position.y);
}
for ( int j = 0 ; j < 10 ; j++ ){
transform.position = new Vector2(transform.position.x - move, transform.position.y);
}
}
}
我建议每次更新只做一次移动-
private float move = 0.1f;
void Update() {
if (transform.position.x < 10) {
transform.position = new Vector2 (transform.position.x + move, transform.position.y);
} else {
transform.position = new Vector2 (transform.position.x - move, transform.position.y);
}
}
这将使对象在每次滴答中移动0.1个单位。我相信Unity每秒运行50次。话虽如此,你也可以使用Lerp方法在两点之间进行平滑变换。
transform.position = Vector2.Lerp(starting_vector, target_vector, Time.deltaTime);
这样做的更好的方法是使用transform.Translate(<vector>)
,这更容易使用,我认为更有效。
你会得到这样的内容,transform.Translate(new Vector3(move,0,0));