c# - 在点之间来回移动 3d 对象

标签 c# unity-game-engine 3d game-physics

我尝试制作一个脚本,在两点之间来回移动对象。但它只是在无限中飞翔。我整个晚上都试图找出问题所在,但我不知道。 这是代码:

using UnityEngine;

public class MovementBetweenPoints : MonoBehaviour {
    public Transform[] keyPoints;
    public float speed;
    private int currentKeyPoint;


    // Use this for initialization
    void Start () 
    {
        transform.position = keyPoints[0].position;
        currentKeyPoint = 1;
    }

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

        if (transform.position == keyPoints[currentKeyPoint].position)
        {
            currentKeyPoint++;
        }

        if (currentKeyPoint >= keyPoints.Length)
        {
            currentKeyPoint = 0;
        }

        transform.position = Vector3.MoveTowards(transform.position, keyPoints[currentKeyPoint].position, speed * Time.deltaTime);
    }
}

最佳答案

您的脚本可以正常工作。您需要确保检查器中的速度设置为大于 0 的值,并且检查器中的关键点数组也包含一些游戏对象,然后就可以开始了

关于c# - 在点之间来回移动 3d 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29833923/

相关文章:

c# - 该元素已经是 TabControl 中另一个元素的子元素

c# - OnTriggerEnter 被调用多次

client-server - 是否有任何库可以让我在网站上显示远程渲染?

python - 如何找到两个凸包的交集?

c# - 如何使用 LINQ 从 List<string> 中删除重复组合

c# - 办公室功能区是否可以有多个自定义选项卡?

c# - 如何使用 Windows Phone 8 从 OBD-II 适配器读取/写入数据?

android - 查找 admob 的电话哈希设备 ID

unity-game-engine - 如何创建自定义游戏对象(组合球体和立方体)

增强现实中的 3D 模型操作