圈内的随机运动

时间:2016-07-10 21:03:18

标签: c# unity3d unity5

所以我的问题是我希望我的物体在一定的圆形范围内以一定的速度随机移动。 现在它移动速度非常快,乘以速度并不起作用。

这是我的代码:

using UnityEngine;
using System.Collections;

public class RandomTargetMovement : MonoBehaviour {
    public float radius  = 20.0f;

    void Update(){
        transform.position = Random.insideUnitCircle * radius;
    }
}

1 个答案:

答案 0 :(得分:0)

这是因为您在每次更新时都会创建一个新的随机数。这有几个原因很糟糕。

但在这个特殊情况下,它不仅很糟糕,而且根本不起作用。这是因为每次渲染帧时都会调用更新,这意味着无论您如何设置速度,都会始终拥有抖动。为此,您应该使用deltaTime。

我假设你想要的是物体移动到一个点,然后开始向一个新的随机点移动。这是一个不那么优雅的解决方案:

    private void OnGripperDoubleClicked(object sender, MouseButtonEventArgs e)
    {
        DataGridColumnHeader header = this.HeaderToResize(sender);
        if ((header != null) && (header.Column != null))
        {
            header.Column.Width = DataGridLength.Auto;
            e.Handled = true;
        }
    }

希望这有帮助。