我想检查我的球何时停止滚动(移动)超过5秒然后执行一些代码。我正在开发一款安卓游戏,有时球会卡住,球应该不断移动,所以我想检查它是否在移动,如果不是,我需要重新生成它。 / p>
这样做的最佳方式是什么?
答案 0 :(得分:2)
每次调用Update
时,您都可以检查对象速度的大小。如果它低于少量(比如0.1或者其他东西,取决于游戏的比例),请将Time.deltaTime
添加到成员变量,否则,将该变量设置为0.如果该变量超过5,则表示您的对象已知已经没有移动(或关闭)5秒钟。然后执行你的代码。
答案 1 :(得分:0)
您可以为计数5秒创建一个简单的计数器并检查gameObject.getComponent.velocity.magnitude;
创建一个if并检查此幅度是否小于您想要的水平
答案 2 :(得分:0)
将此作为C#脚本组件放在您的球类游戏对象上。
public class MyBall : MonoBehaviour{
private Transform _myTransform = null;
private Vector3 _lastPosition = null;
private void Awake(){
_myTransform = transform;
_lastPosition = _myTransform.position;
}
private void Update(){
if(_lastPosition == _myTransform.position){
Debug.Log("Did not move");
}else{
Debug.Log("Moved");
}
_lastPosition = _myTransform.position;
}
}