J.K*_*orn 2 c# unity-game-engine
我有一个void OnCollisionEnter(Collision other)and void OnMouseUp(),但我希望它是这样,如果我松开鼠标,则应该检查碰撞。所以我想要另一个函数中的函数。
void OnMouseUp()
{
void OnCollisionEnter(Collision other)
{
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这是不可能的,那么我该怎么做呢?
OnCollisionEnter 和 OnMouseUp 在一帧中被调用一次,直到您重复该事件或碰撞再次发生为止。您需要一个布尔标志来保证您不会错过任何一个OnMouseUp或OnCollisionEnter因为这发生得非常快。
bool collided = false;
void OnMouseUp()
{
if (collided)
{
Debug.Log("Collding while mouse is up");
}
}
void OnCollisionEnter(Collision other)
{
collided = true;
}
void OnCollisionExit(Collision collision)
{
collided = false;
}
Run Code Online (Sandbox Code Playgroud)
或者甚至没有 OnMouseUp
bool collided = false;
void Update()
{
if ((Input.GetMouseButton(0)) && collided)
{
Debug.Log("Collding while mouse is up");
}
}
void OnCollisionEnter(Collision other)
{
collided = true;
}
void OnCollisionExit(Collision collision)
{
collided = false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |