Unity引擎学习笔记之【触发器操作】

触发Trigger

一、区分碰撞和触发的区别:

  1. 碰撞:碰撞是指两个游戏对象发生了物理上的碰撞。当两个游戏对象的碰撞器(Collider)重叠时,它们就会发生碰撞。碰撞器可以是游戏对象上的任何形状,例如球形、方形等,用于以物理方式模拟游戏对象的运动和相互作用。

    碰撞通常会触发 “OnCollisionEnter”、“OnCollisionStay” 和 “OnCollisionExit” 等事件,可以在这些事件中编写代码来响应碰撞。

  • 笔者认为,触发器就是一个没有刚体碰撞效果的碰撞判断器。

  1. 触发:触发是指当一个游戏对象进入到另一个游戏对象的触发器(Trigger)时发生的事件。触发器是一个不具有实体的碰撞器,可以被配置为某个形状或区域,当其他游戏对象进入该区域时,触发器会向游戏脚本发出通知。

    触发事件通常会触发 “OnTriggerEnter”、“OnTriggerStay” 和 “OnTriggerExit” 等事件,可以在这些事件中编写代码来响应触发。

  • 必须两个物体都有碰撞器(Collider)
  • 必须至少有一个碰撞体(Collider)被设置为:刚体(Rigidbody)
  • 需要有触发响应的物体的碰撞器(Collider)被设置为“是触发器”(Trigger)。

二、触发器脚本控制

1.基本方法

  • 触发器触发时
    private void OnTriggerEnter(Collider other)
    {
        
    }

  • 持续触发中
     private void OnTriggerStay(Collider other)
    {
        
    }

  • 触发器结束
    private void OnTriggerExit(Collider other)
    {
        
    }

2.实现触碰机关时门消失

    1. 一前一后两个物体,前面的物体叫做Switch,后面的物体叫Door
    1. 确保两个物体都具有刚体(Rigidbody)和碰撞(Collider)组件
    1. 将Switch的碰撞器(Collider)设置为“是触发器”(Trigger)
    1. 自定义脚本:
    private void OnTriggerEnter(Collider other)
    {
        GameObject door = GameObject.Find("Door");
            if(door!=null)
        {
            door.SetActive(false);
        }
    }
    1. 将脚本附加到Switch物体上
      • 当把门的碰撞器(Collider)设置为“是触发器”(Trigger)时,也可以实现门的消失,但是角色将可以直接穿过门。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老师好我差点叫何同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值