如何检查刚体是否在移动?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查刚体是否在移动?相关的知识,希望对你有一定的参考价值。
我想检查刚体是否正在移动并且我尝试了多种东西,它似乎没有用。
我在下面添加了我的代码片段,但是当游戏对象落在某个区域时,基本上会触发更新功能。在那一点上,我在一根绳子上接触一个刚体,看它是否在移动。对于使用IsSleeping函数的片段,但它确实有效。任何人都知道我可以检查一旦游戏对象落在特定区域,以检查它是否停止移动。
void Start()
{
checkSleeping = false;
joint = player.transform.Find("Joint 0").gameObject;
jointRB = joint.GetComponent<Rigidbody2D>();
Debug.Log("Found Him");
}
void Update()
{
if (checkSleeping == true)
{
SleepingKonyaku();
}
}
void OnTriggerStay2D (Collider2D col)
{
if (col.tag == "Player" )
{
checkSleeping = true;
}
}
void OnTriggerExit2D (Collider2D col)
{
if (col.tag == "Player")
{
checkSleeping = false;
}
}
void SleepingKonyaku ()
{
if(jointRB.IsSleeping())
{
Invoke ("RestartLevel", 2f);
Debug.Log ("sleeping baby!!");
}
else
{
Debug.Log("Not Sleeping");
}
}
答案
当它具有非零速度时,某些东西被认为是移动的。这样做:检查Rigidbody
速度的大小(长度)是0还是至少接近它。对于一些额外的性能,你可以使用sqrMagnitude
而不是magnitude
:这不涉及取值的平方根,这是一个相对缓慢的过程。
以上是关于如何检查刚体是否在移动?的主要内容,如果未能解决你的问题,请参考以下文章
unity3d/2d刚体addforce如何才能立即停下来,我人物移动每次都会滑行一会
cocos2dx 3.X刚体update穿透问题。刚体A在update中通过摇杆移动,设置的和刚体