如何检查我的球是否停止滚动?

时间:2015-06-07 19:43:56

标签: c# unity3d unityscript

我想检查我的球何时停止滚动(移动)超过5秒然后执行一些代码。我正在开发一款安卓游戏,有时球会卡住,球应该不断移动,所以我想检查它是否在移动,如果不是,我需要重新生成它。 / p>

这样做的最佳方式是什么?

3 个答案:

答案 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;
       }
    }