在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);
        }
    }
}

在X轴的两个点之间移动对象

我建议每次更新只做一次移动-

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));