Unity_碰撞器/触发器(Collider/Trigger)
创始人
2024-12-17 10:05:57
0

本篇内容介绍Unity中的碰撞器与触发器。 这些分为2D和3D,本篇以3D举例,2D类似。效果图见四.3.2

一、碰撞器与触发器的区别

1.是否发生物理碰撞:

碰撞器顾名思义会导致物理之前的物理碰撞,但触发器不会,不引起物理碰撞,只检测物体进入或离开触发区域。

碰撞器由于发生物理碰撞所以会阻止物体穿过进而发生相互作用,但触发器可以自由进出触发区域。

2.使用场景:

所以一般情况下当物体之间实际碰撞时使用碰撞器,只需要判断进出某个区域则用触发器

二、碰撞器/触发器功能

1.碰撞器功能:

碰撞器用于物理交互,他的主要功能包括:

1.1实现物体之间的真实物理交互效果,如碰撞,反弹等物理现象
1.2防止物体穿墙等类似效果
1.3检测是否与其他对象碰撞,在需要时执行相应的逻辑,如播放音乐等。一般这样情况使用触发器。

2.触发器功能:

1.检测到物体进入/离开/停留在触发区域时可以执行相应事件,见上面1.3。

三、碰撞器/触发器种类

碰撞器与触发器种类相同就是把Is Trigger勾选就好了。

1.Box Collider:

2.Sphere Collider:

3.Capsule Collider:

4.Mesh Collider:

5.还有Wheel Collider/Terrain Collider/Edge Collider:

由于我暂时没有项目用到,这里不做解释,等后续使用会补充。

6.Character Controller:

如果你使用Character Controller自带的碰撞器,使用方法看第四点。

四、碰撞器与触发器的使用方法

1.添加刚体组件:

添加刚体组件以满足你需要碰撞或触发的两个物体至少有一个具有刚体组件。

如果你仅需检测碰撞后执行某功能或方法,可以设置为运动学刚体避免影响你物体的正常运动。

如果你使用Character Controller则不需要添加刚体组件。

2.碰撞器使用方法:

2.1创建脚本:

创建脚本挂载到合适位置,这里我演示放到了碰撞物体上。

2.2方法:
private void OnCollisionEnter(Collision collision) {      } private void OnCollisionStay(Collision collision) {      } private void OnCollisionExit(Collision collision) {      }

方法有三种,进入,停留,离开,这里具体使用方法举例放到触发器里。

3.触发器使用方法:

3.1使用条件:

有一方有触发器即可,与刚体类似。

3.2方法:
public GameObject ColliderSphere; public GameObject CollidedCube; private Color colorSphere; private Color colorCube; private void Start() {     colorSphere = ColliderSphere.gameObject.GetComponent().material.color;     colorCube   = CollidedCube.  gameObject.GetComponent().material.color; } private void OnTriggerEnter(Collider other) {     if (other.gameObject.name == "Cube")     {         ColliderSphere.gameObject.GetComponent().materials[0].color = Color.red;     } } private void OnTriggerStay(Collider other) {     if (other.gameObject.name == "Cube")     {         Debug.Log("物体停留");     } } private void OnTriggerExit(Collider other) {     if (other.gameObject.name == "Cube")     {         ColliderSphere.gameObject.GetComponent().materials[0].color = colorSphere;         CollidedCube.gameObject.GetComponent().materials[0].color = colorCube;     } }

具体看触发进入方法中,判断触发检测到的物体名字是否与你想要的一样,如果一样则实现某种功能,这里我实现变色,没进入前是这样的:

进入后圆球变红色:

这个窗口的打开位于:Window->General->Console

4.Character Controller碰撞器使用方法:

private void OnControllerColliderHit(ControllerColliderHit hit) {      }

相关内容

热门资讯

分享攻略!微信里面斗牛链接房卡... 微信游戏中心:斗牛房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
分享攻略!微信里面斗牛房卡在哪... 微信游戏中心:斗牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
分享攻略!我买微信牛牛房卡链接... 微信游戏中心:牛牛房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
分享攻略!微信买链接拼三张房卡... 微信游戏中心:拼三张房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信拼三张房...
分享攻略!微信里上玩炸金花购买... 微信游戏中心:炸金花房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信炸金花房...
分享攻略!微信炸金花购买房卡方... 微信游戏中心:炸金花房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信炸金花房...
推荐一款!牛牛房卡游戏平台加盟... 微信游戏中心:宝马系列/随意玩房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或...
正规平台有哪些,金花房卡官网荣... 荣耀乐娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
头条推荐!金花房卡怎么购买卡贝... 您好!微信卡贝大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(卡贝大厅)大厅介绍:...
分享攻略!拼三张房卡链接在哪弄... 微信游戏中心:拼三张房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信拼三张房...
重大通报,金花房卡制作链接新蛮... 今 日消息,新蛮王房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单介...
正规平台有哪些,牛牛房卡批发平... 正规平台有哪些,牛牛房卡批发平台新荣耀/飞鹰互娱/微信链接房卡从哪里获取新荣耀/飞鹰互娱是一款非常受...
分享攻略!微信炸金花怎么买房卡... 微信游戏中心:炸金花房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信炸金花房...
分享攻略!炸金花微信房卡怎么购... 微信游戏中心:炸金花房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信炸金花房...
分享攻略!微信链接牛牛房卡怎么... 微信游戏中心:斗牛房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
分享攻略!微信牛牛房间卡在哪买... 微信游戏中心:斗牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
分享攻略!微信群牛牛房间怎么开... 微信游戏中心:牛牛房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
分享攻略!微信里玩拼三张房卡在... 微信游戏中心:拼三张房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信拼三张房...
分享攻略!微信群开牛牛房卡,人... 微信游戏中心:牛牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
分享!如何创建拼三张房间卡/神... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33699510许多玩家在游戏中会购买房卡来享...