包含此页的版本:
不含此页的版本:
当两个非触发器碰撞体 用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格体形状完全相同 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表联系。
示例用法碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
请参阅术语表活动包括:
处理冲突事件主要涉及以下 API 函数:
Collider.OnCollisionEnter:当两个碰撞器首次接触时,Unity 在每个碰撞器上调用此函数。Collider.OnCollisionStay:当两个碰撞器接触时,Unity 在每次物理更新时在每个碰撞器上调用一次此函数。Collider.OnCollisionExit:当两个碰撞器停止接触时,Unity 在每个碰撞器上调用此函数。对于碰撞事件,至少一个涉及的对象必须具有动态物理形体(即,禁用了 运动学(Is Kinematic) 的刚体或关节体(ArticulationBody) )。如果同时游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表在碰撞中,运动物理体,碰撞不会调用OnCollision功能。
以下示例在 Unity 调用每个函数时向控制台打印一条消息。
using UnityEngine;
using System.Collections;
public class DoorObject : MonoBehaviour
{
// “other” refers to the collider that is touching this collider
void OnCollisionEnter (Collider other)
{
Debug.Log ("A collider has made contact with the DoorObject Collider");
}
void OnCollisionStay (Collider other)
{
Debug.Log ("A collider is in contact with the DoorObject Collider");
}
void OnCollisionExit (Collider other)
{
Debug.Log ("A collider has ceased contact with the DoorObject Collider");
}
}
有关实际应用示例OnCollision事件,请参阅碰撞器事件的示例脚本。