Unity3d碰撞检测中碰撞器与触发器的概念
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。
为了验证碰撞器与触发器的区别,现设计一个简单的游戏,让小汽车与小球发生碰撞。新建一个C#脚本文件,把它拖给小汽车对象,双击该脚本文件进入脚本编辑器,在该脚本中加入如下两个方法,并分别设置一个断点:
// 开始接触void OnTriggerEnter(Collider collider) {
Debug.Log("开始接触:" + collider.gameObject.name);
//Debug.Log (collider.gameObject.name);
}
// 接触持续中void OnTriggerStay(Collider collider) {
Debug.Log("接触持续中");
}
// 接触结束void OnTriggerExit(Collider collider) {
Debug.Log("接触结束");
}
// 碰撞开始void OnCollisionEnter(Collision collision) {
var name = collision.collider.name;Debug.Log("碰撞物: " + name);
//var tag = collision.collider.tag;//Debug.Log("Tag is " + tag);
}
// 碰撞持续中void OnCollisionStay(Collision collision) {
//TODO:
}
// 碰撞结束void OnCollisionExit(Collision collision) {
//TODO:
}
触发器:没有作用力,如人站在靠近门的位置,门自动打开
- 上一篇:unity的碰撞检测详细解释 2018/3/5
- 下一篇:WIN 7 WIN10不能安装设备驱动的解决方法 2018/3/4