我有一个统一的角色,我想向右移动3秒,然后向左移动3秒,然后向右移动,依此类推......就像一个循环移动。 / p>
我该怎么做?是否可以重置Time.time的时间?
void Update () {
starttime = Time.time;
if (starttime < 3)
{
rigidbody.AddForce(rigidbody.transform.TransformDirection((new Vector3(0, 0, 1)) * 5));
}
}
答案 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)
的协程,然后调用您提供的回调,这将应用新的力量。