Unity3d Unity 3D:如何冻结帧以探索“Debug.DrawRay”绘制的冲突线?
我试过这个:Unity3d Unity 3D:如何冻结帧以探索“Debug.DrawRay”绘制的冲突线?,unity3d,debugging,Unity3d,Debugging,我试过这个: Debug.DrawRay(contact.point、collision.relativelocity、Color.white); Time.timeScale=0.0f; 帧已冻结,但线未显示。另外,我试图在画线后立即冻结更新,但没有成功,也跳过了第一次更新,仅在帧中发生碰撞时调用一次 具有持续时间,其默认值为0 这条线应该可以看到多长时间 及 持续时间是行首次显示后可见的时间(秒)持续时间为零表示仅一帧的行。 这样你就可以通过考试了,比如说2like Debug.Draw
Debug.DrawRay(contact.point、collision.relativelocity、Color.white);
Time.timeScale=0.0f;
帧已冻结,但线未显示。另外,我试图在画线后立即冻结更新
,但没有成功,也跳过了第一次更新,仅在帧中发生碰撞时调用一次
具有持续时间
,其默认值为0
这条线应该可以看到多长时间
及
持续时间
是行首次显示后可见的时间(秒)持续时间为零表示仅一帧的行。
这样你就可以通过考试了,比如说2
like
Debug.DrawRay(contact.point,collision.relativelocity,Color.white,2.0f);
使其保持可见2秒钟
作为替代方案,我只需将代码放进去,这样在冲突发生时,它不仅会被调用一次,而且会在每一帧调用一次
对于其背后的问题,Unity API通常是一个很好的起点:
-
应用于此触点对以解决碰撞的总脉冲
总冲量是通过将施加在该碰撞对中所有接触点上的冲量相加得到的。要计算出施加的总力,可以将总冲量除以最后一帧的固定时间
-
两个碰撞物体的相对线速度
因此,差异:impulse
考虑了所有单独的接触/碰撞点,其中每个点可能具有不同的碰撞力和方向,而relativeVelocity
仅是对象中心/枢轴点之间的相对速度(无所谓).仅在第一次发生碰撞时在帧中调用一次
具有持续时间
,其默认值为0
这条线应该可以看到多长时间
及
持续时间
是行首次显示后可见的时间(秒)持续时间为零表示仅一帧的行。
这样你就可以通过考试了,比如说2
like
Debug.DrawRay(contact.point,collision.relativelocity,Color.white,2.0f);
使其保持可见2秒钟
作为替代方案,我只需将代码放进去,这样在冲突发生时,它不仅会被调用一次,而且会在每一帧调用一次
对于其背后的问题,Unity API通常是一个很好的起点:
-
应用于此触点对以解决碰撞的总脉冲
总冲量是通过将施加在该碰撞对中所有接触点上的冲量相加得到的。要计算出施加的总力,可以将总冲量除以最后一帧的固定时间
-
两个碰撞物体的相对线速度
因此,区别在于:impulse
考虑了所有单独的接触点/碰撞点,其中每个点可能具有不同的碰撞力和方向,而相对水平度
仅是对象中心/枢轴点之间的相对速度(无所谓)。您在哪里调用此代码?如果它是例如OnCollisionCenter
或类似的东西,则只会在1帧内调用它,并且Time.timeScale=0代码>不会有多大帮助。也许只需要一个断点就足够了?是的,它是在OnCollisionCenter
中调用的。目的是查看和理解碰撞、相对性和碰撞、冲量的含义以及它们的方向。我希望可视化可以帮助我。你在哪里调用这个代码?如果它是例如OnCollisionCenter
或类似的东西,则只会在1帧内调用它,并且Time.timeScale=0代码>不会有多大帮助。也许只需要一个断点就足够了?是的,它是在OnCollisionCenter
中调用的。目的是查看和理解碰撞、相对性和碰撞、冲量的含义以及它们的方向。我希望可视化能帮助我。