嗨,我已经使用Unity一段时间了,对于我的生活,我仍然无法区分OnCollisionStay和OnCollisionEnter.我假设当刚体(如球)与另一个刚体/对撞机(如墙)接触时,会调用OncollisionEnter.但是当我看一下OnCollisionStay的例子时,我完全感到困惑.即使它每帧调用一次,如果我跳到空中并撞到我上方的天花板,它仍然被称为?究竟有什么区别?以下是Unity文档所说的内容以及我使用的代码.
"当此对撞机/刚体开始接触另一个刚体/对撞机时,会调用OnCollisionEnter."
"对于每个碰到刚体/对撞机的碰撞器/刚体,每帧都会调用一次OnCollisionStay."
if(Input.GetKeyDown(KeyCode.W) && OnGround == True)
{
rigidbody.velocity.y = jumpHeight;
}
onGround = false;
function OnCollisionStay()
{
onGround = true;
}Run Code Online (Sandbox Code Playgroud)