应用特定间隔的运动

时间:2014-05-15 18:19:25

标签: unity3d

我有一个统一的角色,我想向右移动3秒,然后向左移动3秒,然后向右移动,依此类推......就像一个循环移动。 / p>

我该怎么做?是否可以重置Time.time的时间?

void Update () {

        starttime = Time.time; 

        if (starttime < 3)
        {
            rigidbody.AddForce(rigidbody.transform.TransformDirection((new Vector3(0, 0, 1)) * 5));
        }

}

2 个答案:

答案 0 :(得分:0)

不,你不能重置Time.time,但你可以这样做:

private float walkTime = 3f; // seconds to walk in each direction
private float direction = 1f; // right or left

void Start() {
    starttime = Time.time;
}

void Update () {
    rigidbody.AddForce(rigidbody.transform.TransformDirection((new Vector3(direction, 0, 0)) * 5));
    if (starttime + walkTime <= Time.time) {
        direction *= -1;
        starttime=Time.time;
    }

}

答案 1 :(得分:0)

您可以创建一个yield return new WaitForSeconds(3)的协程,然后调用您提供的回调,这将应用新的力量。