目录
在 Unity 中,触发(Trigger)是一种特殊的碰撞检测机制,用于检测物体之间的交互而不产生物理碰撞反应。触发器可以用于各种用途,例如检测角色进入特定区域、启动动画、播放声音等。
要将碰撞体(Collider)设置为触发器,可以勾选其属性中的 "Is Trigger" 选项。一旦设置为触发器,碰撞体将不再引起物理碰撞,而是通过触发事件来进行交互。
场景搭建
创建一个平面,一个胶囊,并给胶囊添加控制移动的脚本和unity自带的角色控制器。具体步骤,移步:unity-角色控制器的使用-优快云博客
给胶囊添加一个刚体
冻结旋转
当胶囊移动到边缘时,胶囊会进行翻转掉落,如果不想翻转,可以冻结旋转
创建一面墙
触发需求
当胶囊移动到平面的左下角时,这堵墙就会消失
设置触发器
创建一个物体,放到平面的左下角,并将其设置为触发器
创建脚本并挂载到触发物体上
编写脚本
参数other是进入触发的碰撞器
在编写之前,先把墙物体重命名为Door
脚本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnTriggerEnter(Collider other)
{
GameObject door = GameObject.Find("Door");
if(door!=null)
{
door.SetActive(false);
}
}
private void OnTriggerStay(Collider other)
{
}
private void OnTriggerExit(Collider other)
{
}
}