【发布时间】:2015-08-26 22:19:52
【问题描述】:
我正在编写一个脚本,因此我可以检测到玩家何时没有移动 x 秒并相应地加载另一个场景。
如果玩家在 x 秒后再次开始移动,则不应调用加载另一个场景。
我尝试过使用 isSleeping 函数并通过包含协程和 WaitForSeconds 来延迟它,但它仍在每帧检查 Rigidbody2D。有没有其他方法可以检查 Rigidbody2D 是否在 x 秒内没有移动,然后才加载游戏过关,否则继续像以前一样移动?
using UnityEngine;
using System.Collections;
public class PlayerStop : MonoBehaviour {
void Update() {
if (GetComponent<Rigidbody2D>().IsSleeping()) {
Application.LoadLevel(2);
}
}
}
此外,我还有一个脚本,可以让我画线(用鼠标)并停止玩家的移动,但是线会在 x 秒后消失。因此,例如,如果我将线条设置为在 1 秒后消失,我想检查 Rigidbody2D 是否停止移动 2 秒,然后才加载游戏结束场景。否则什么都不做,因为 Rigidbody2D 将在线条消失后继续移动。
【问题讨论】:
-
可能在每一帧上,都可以查看上一帧的坐标。继续此操作 x 秒,如果之前的坐标与所有帧中的当前坐标相同,则进入下一级