Unity3D游戏开发预备课(二)

碰撞器和触发器的概念及相关处理事件


welcome

碰撞器

碰撞器概念

  1. 在U3D引擎中任意物体之间的碰撞事件的产生都依赖于碰撞器,即“Collider”。
  2. Object之间的碰撞实际上是“Collider”之间的碰撞。
  3. Object所具有的网格渲染器,即”Mesh Renderer”并不参与碰撞的检测,仅仅是展现给人看的外观。
01

碰撞器所具有的属性

  • Material 材质

  • Is Trigger 是否触发器

  • Radius 半径(胶囊形或圆形碰撞器)

  • Center 中心

  • Size 大小 在X、Y、Z三维上的碰撞器尺寸。

02

碰撞器事件

1
2
3
  1.MonoBehaviour.OnCollisionEnter(Collision collision) 当进入碰撞器
  2.MonoBehaviour.OnCollisionExit(Collision collision) 当退出碰撞器
  3.MonoBehaviour.OnCollisionStay(Collision collision) 当逗留碰撞器

实例

只要为两个Object设置了碰撞器,就会继续碰撞检测。
小方块与墙壁发生碰撞未能穿过墙壁。

03

触发器

触发器概念

  1. 勾选碰撞器的”Is Trigger”属性,碰撞器就会变成触发器。
  2. 即原来具有这个碰撞器的Object现在不能发生碰撞。
  3. 触发器具有新的触发事件,在游戏中可以用来表示在特定的区域中发生的事件,如在毒雾中持续削减HP。

触发器所具有的属性

  • Material 材质

  • Is Trigger 是否触发器

  • Radius 半径(胶囊形或圆形触发器)

  • Center 中心

  • Size 大小 在X、Y、Z三维上的碰撞器尺寸。

触发器事件

1
2
3
  1.MonoBehaviour.OnTriggerEnter(Collider collider)当进入触发器
  2.MonoBehaviour.OnTriggerExit(Collider collider)当退出触发器
  3.MonoBehaviour.OnTriggerStay(Collider collider)当逗留触发器

实例

将脚本添加到自己定义的空物体,并为空物体添加碰撞器,同时勾选”Is Trigger”,使用Edit Collider按钮调整区域大小
小方块进入了指定区域,门自动打开

04

附实现完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class door : MonoBehaviour {
private Transform m_transform;
void Start () {
//通过查找门的名称获取其变换组件
m_transform = GameObject.Find("doorparent").GetComponent<Transform>();
}
void Update () {
}
//开门方法
void Opendoor()
{
m_transform.Rotate(Vector3.up, -90);
}
//关门方法
void Closedoor()
{
m_transform.Rotate(Vector3.up, 90);
}
//当进入的物体为小方块
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.name == "student")
{
Opendoor();
}
}
//当退出的物体为小方块
private void OnTriggerExit(Collider other)
{
if (other.gameObject.name == "student")
{
Closedoor();
}
}
}

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 碰撞器
    1. 1.1. 碰撞器概念
    2. 1.2. 碰撞器所具有的属性
    3. 1.3. 碰撞器事件
    4. 1.4. 实例
  2. 2. 触发器
    1. 2.1. 触发器概念
    2. 2.2. 触发器所具有的属性
    3. 2.3. 触发器事件
    4. 2.4. 实例