Unity学习——碰撞器
Posted DWQY
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity学习——碰撞器相关的知识,希望对你有一定的参考价值。
Unity中碰撞器使用了Collider组件
碰撞器的前提必须有刚体组件(只有刚体才能发生碰撞嘛~),没有刚体即使加了碰撞器还是和没加一样会直接穿过没有反应
Unity中提供了六种碰撞器:
1)Box Collider(盒子碰撞器):适用于长方体,如门、墙、平台对象或者对象外壳
2)Sphere Collider(球体碰撞器):适用于落石、球类游戏对象
3)Capsule Collider(胶囊体碰撞器):用于Characters组件(角色控制器)或者与其他不规则碰撞器结合。Capsule和Cylinder会自动添加
4)Mesh Collider(网格碰撞器):构建更精细的碰撞网格,只有开启Convex属性的Mesh Collider才能与其他Mesh Collider发生碰撞。Pland和Quad会自动添加
5)Wheel Collider(车轮碰撞器):用于车轮
6)Terrain Collider(地形碰撞器):用于地形,Terrain会自动添加
碰撞器有几种常用属性:
1)is Trigger:是否为触发器
2)Material:碰撞器表面物理材质
3)Center:位置
4)Size:大小
提到碰撞器就要说一下触发器Trigger,触发器是碰撞器的一个属性。触发器存在的价值在于如果想检测碰撞并且不想干扰物体的移动,就改用触发器进行检测。
下面说明下几个常用碰撞检测函数:
(1)Non-Trigger Collider(没有勾选is Trigger)
此时与其他没有勾选is Trigger的物体会发生碰撞(与勾选的不会),有以下三种情况:
// 刚开始接触碰撞区域时触发
void OnCollisionEnter(Collision other)
// 不再接触碰撞区域时触发
void OnCollisionExit(Collision other)
// 停留在碰撞区域中触发
void OnCollisionStay(Collision other)
(2)Trigger Collider(勾选了is Trigger)
只要勾选了,碰撞器就会被忽略,无论对方是否勾选了is Trigger,都会直接穿过,但会触发下面函数:
// 自己(勾选了)开始接触另一个(勾选了)触发
void OnTriggerEnter(Collider other)
// 自己(勾选了)停止接触另一个(勾选了)触发
void OnTriggerExit(Collider other)
// 自己(勾选了)一直接触另一个(勾选了)不断触发
void OnTriggerStay(Collider other)
因作者水平有限,如有错误之处,请在下方评论区指出,谢谢!
unity编辑碰撞器不见
参考技术A unity编辑碰撞器不见有可能是没有添加。unity3D碰撞器的添加可以通过在Component中点击Physics2D,PolygonCollider2D,可对一个不规则形状的对象添加碰撞体。1、碰撞器(Collider)是组件,加了碰撞器的游戏物体才可能实现碰撞效果。
2、在Unity内部提供了许多碰撞器,通过AddComponentPhysics可以添加3D碰撞器组件1。
3、Unity提供的组件有:BoxCollider(盒碰撞器),SphereCollider(球碰撞器),CapsuleCollider(胶囊碰撞器),MeshCollider(网格碰撞器),WheelCollider(轮子碰撞器,用来创建交通工具),TerrainCollider(地形碰撞器),CharacterController(角色控制器)。
以上是关于Unity学习——碰撞器的主要内容,如果未能解决你的问题,请参考以下文章
Unity --- 物理引擎 --- 触发器 与 碰撞器详解
[Unity学习笔记:FPS游戏制作]子弹拖尾,碰撞与枪口火焰效果