我试图在Unity中创建一个第一人称射击游戏,球体被发射,如果它击中周围的立方体,应该被摧毁。球体是通过鼠标点击创建的。
函数OnCollisionEnter(collision)是在球体与任何东西碰撞之前被调用的,也就是说,当一个新的球体被创建时,它被直接调用,即使没有碰撞,它也会直接摧毁球体。
private void OnCollisionEnter(Collision collision)
{
Debug.Log("OnCollisionEnter - MOVER");
DestroyObject(gameObject);
}
代码写在球体的Mover文件中。
如果有任何帮助将非常感激,因为我是unity的新手。
在你的场景中,你有一些物体,上面有这个脚本,它的准星在你的枪的范围内。这可能是对准器的立方体是巨大的,或者你不小心把这个脚本附加在一个游戏对象上,你不打算。如果你在gameobject hierarchy上面的搜索栏中输入完整的脚本名称,它将显示每个游戏对象都有这个脚本。
OnCollisionEnter
如果你想为一个特定的游戏对象调用这个函数,例如 Player
或 Enemy
或等等。,给你的对象分配一个标签,并与你一起检查它 collision
对象的标签。
void OnCollisionEnter(Collision collision)
{
if(collision.tag == "Player")
{
Destroy(gameObject);
}
}