Unity3D学习之(碰撞检测)
2014-12-20 15:50
471 查看
欢迎大家光临我的博客!
一、碰撞检测
在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。
为了完整的了解这两种方式,我们必须理解以下概念:
1、碰撞器是一群组件,它包含了很多种类,比如:
Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
2、所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。
3、给主角添加刚体(Rigidbody)组件,并且取消刚体组件的重力选项UseGravity。
二、触发信息检测
1、当进入触发器
MonoBehaviour.OnTriggerEnter( Collider other )
2、当退出触发器
MonoBehaviour.OnTriggerExit( Collider other )
3、当逗留触发器
MonoBehaviour.OnTriggerStay( Collider other )
①// 触发接触的那一帧被调用
void OnTriggerEnter(Collider other) {
Debug.Log("enter");
Debug.Log(other.gameObject.name);
}
②//触发接触的每帧都被调用
void OnTriggerStay(Collider other) {
Debug.Log("Stay");
}
③// 触发结束被调用
void OnTriggerExit(Collider other) {
Debug.Log("Exit");
}
三、碰撞信息检测
1、当进入碰撞器
MonoBehaviour.OnCollisionEnter( Collision collisionInfo )
2、当退出碰撞器
MonoBehaviour.OnCollisionExit( Collision collisionInfo )
3、当逗留碰撞器
MonoBehaviour.OnCollisionStay( Collision collisionInfo )
①// 碰撞接触的那一帧被调用
void OnCollisionEnter(Collision collision) {
Debug.Log("enter");
Debug.Log(collision.gameObject.name);
}
②// 碰撞接触的每帧都被调用
void OnCollisionStay(Collision collision) {
Debug.Log("Stay");
}
③// 碰撞结束被调用
void OnCollisionExit(Collision collision) {
Debug.Log("Exit");
}
四、忽略碰撞
有些时候我们不想让指定的两对象发生碰撞,即要忽略他们的碰撞
public Transform ball;
void Start() {
Physics.IgnoreCollision(ball.collider, this.collider);
}
一、碰撞检测
在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。
为了完整的了解这两种方式,我们必须理解以下概念:
1、碰撞器是一群组件,它包含了很多种类,比如:
Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
2、所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。
3、给主角添加刚体(Rigidbody)组件,并且取消刚体组件的重力选项UseGravity。
二、触发信息检测
1、当进入触发器
MonoBehaviour.OnTriggerEnter( Collider other )
2、当退出触发器
MonoBehaviour.OnTriggerExit( Collider other )
3、当逗留触发器
MonoBehaviour.OnTriggerStay( Collider other )
①// 触发接触的那一帧被调用
void OnTriggerEnter(Collider other) {
Debug.Log("enter");
Debug.Log(other.gameObject.name);
}
②//触发接触的每帧都被调用
void OnTriggerStay(Collider other) {
Debug.Log("Stay");
}
③// 触发结束被调用
void OnTriggerExit(Collider other) {
Debug.Log("Exit");
}
三、碰撞信息检测
1、当进入碰撞器
MonoBehaviour.OnCollisionEnter( Collision collisionInfo )
2、当退出碰撞器
MonoBehaviour.OnCollisionExit( Collision collisionInfo )
3、当逗留碰撞器
MonoBehaviour.OnCollisionStay( Collision collisionInfo )
①// 碰撞接触的那一帧被调用
void OnCollisionEnter(Collision collision) {
Debug.Log("enter");
Debug.Log(collision.gameObject.name);
}
②// 碰撞接触的每帧都被调用
void OnCollisionStay(Collision collision) {
Debug.Log("Stay");
}
③// 碰撞结束被调用
void OnCollisionExit(Collision collision) {
Debug.Log("Exit");
}
四、忽略碰撞
有些时候我们不想让指定的两对象发生碰撞,即要忽略他们的碰撞
public Transform ball;
void Start() {
Physics.IgnoreCollision(ball.collider, this.collider);
}
相关文章推荐
- 【Unity3D】学习笔记(第7记)射线碰撞检测
- unity3d刚体和碰撞检测学习一:新建一个plane和一个sphere,却碰撞检测失败的问题
- Unity3D学习之(碰撞检测小项目)
- 学习cocos2d-x之路(6)--Tilemap的碰撞检测
- [Unity3D]简单的鼠标碰撞检测与事件监听
- Unity3D----导入模型的碰撞检测
- unity3D之简单的碰撞检测 .
- AndEngine学习:PhysicsCollisionFiltering(有过滤器的碰撞检测)
- cocos2d-x 菜鸟学习笔记十三(简单的碰撞检测)
- [Unity3D]在Unity3D中实现简单的碰撞检测
- 学习 Box2D 个人笔记(十)碰撞检测
- Unity3D碰撞检测及Trigger触发器的使用及注意事项
- Flash游戏学习笔记:矩形检测碰撞
- unitY3D---(2)碰撞检测
- (转)[AndEngine学习教程] 第9节 CollisionDetection 实体碰撞检测
- Unity3d 物体碰撞检测前提条件(OnTrigger触发条件)
- AndEngine学习:CollisionDetectionExample(碰撞检测)
- “AS3.0高级动画编程”学习:第一章高级碰撞检测
- 学习XNA游戏编程2:用户输入和碰撞检测
- Unity3D----导入模型的碰撞检测