【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)

这篇具有很好参考价值的文章主要介绍了【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、碰撞交互事件OnTriggerEnter

1、在场景中添加两个几何体(例如Cube和Sphere)
【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)
2、添加Rigidbody(刚体)component

点击Cube(正方体)对象,在面板找到这个按钮,添加component
【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)
搜索Rigidbody
【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)
默认状态下collider(碰撞)是被开启的。
【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)

3、创建C#脚本,增加OnTriggerEnter事件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class e : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    private void OnTriggerEnter(Collider other)
    {
        Debug.Log("碰撞发生啦!");
        var renderer = GetComponent<Renderer>();
        renderer.material.SetColor("_Color", Color.blue);
    }
}

4、将shpere(球体)设置为触发器,不需要添加刚体和代码。
【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)
5、将正方体摆放在球体上方,自由降落,可以看到穿过球体的过程中执行了碰撞交互事件(变蓝色)
【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)

二、碰撞交互事件OnCollisionEnter

1、将Is Trigger取消勾选。
2、将代码修改为:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class e : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log("碰撞发生啦!");
        var renderer = GetComponent<Renderer>();
        renderer.material.SetColor("_Color", Color.blue);
    }
}

三、总结

(1)OnTriggerEnter方法使用时,被动碰撞体必须包含一个 Collider(碰撞),一个Rigidbody(刚体),被动碰撞体上需要启用isTrigger(触发器)。刚体不能勾选IsKinematic。
(2)如果两个GameObject都有Collider都开启isTrigger时,或者两个GameObject都没有Rigidbody组件时,碰撞将不发生。
(3)当触发OnTriggerEnter方法,OnCollisionEnter则不会被执行。

官方:Collider.OnTriggerEnter(Collider)
官方:Collider.OnCollisionEnter(Collision)文章来源地址https://www.toymoban.com/news/detail-493067.html

到了这里,关于【Unity】 基础交互入门(碰撞交互事件OnTriggerEnter和OnCollisionEnter)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DOTS Unity.Physics物理引擎碰撞事件处理

    最近DOTS发布了正式的版本,同时基于DOTS的理念实现了一套高性能的物理引擎,今天我们给大家分享和介绍一下这个物理引擎的碰撞事件处理以及核心相关概念。 Unity.Physics 物理引擎的主要流程与P ipeline   Unity.Physics物理引擎做仿真迭代计算的时候主要通过以下步骤来执行:   

    2024年01月18日
    浏览(50)
  • 【Unity】 基础交互入门(C#脚本互相调用的方法,含动态绑定脚本)

    脚本A: 在需要被调用的类里这样写: 脚本B: 在其他类里调用: 如果出现无法识别上下文的提示,检查一下以下问题: 1、两个脚本的命名空间是否一致,如果不需要的命名空间可以直接删除。 2、类名是否大写开头,且命名合法,且和文件名一致。 3、更新编译一下保存一

    2024年02月15日
    浏览(53)
  • 【Unity入门】24.碰撞检测

        大家好,我是Lampard~~     欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢    (1)Collider组件     上节课我们有学习到,unity的物理系统提供了更方便的碰撞检测机制,就是 提供各种的Collider组件去检测碰撞需求 Unity 中有以下几种 Collider 组件: 1. Box Coll

    2024年02月06日
    浏览(40)
  • Unity 2d - 基础 - 碰撞(一) - 针对性碰撞

    问题: 在开发过程中经常会遇到物体碰撞的问题,比如玩家的角色遇到敌人后碰撞掉血,子弹碰到敌人后消失等等。 一般我们会选择添加刚体与碰撞盒来处理此类问题,但添加碰撞盒后,玩家的多个单位之间也会形成碰撞,在横版2D游戏中就很致命了,如图:  要处理此问题

    2024年02月16日
    浏览(37)
  • Unity入门7——物理系统之碰撞检测

    一、刚体 Rigid Body ​ 刚体利用体积(碰撞器 Collider)进行碰撞计算,模拟真实的碰撞效果,产生力的作用 ​ 碰撞产生的必要条件: 两个物体都有碰撞器 Collider 至少一个物体有刚体 Mass:质量 默认为千克,质量越大惯性越大 Drag:空气阻力 根据力移动对象时影响空气阻力大

    2024年02月09日
    浏览(48)
  • 2022-04-20 Unity入门7——物理系统之碰撞检测

    一、刚体 Rigid Body ​ 刚体利用体积(碰撞器 Collider)进行碰撞计算,模拟真实的碰撞效果,产生力的作用 ​ 碰撞产生的必要条件: 两个物体都有碰撞器 Collider 至少一个物体有刚体 Mass:质量 默认为千克,质量越大惯性越大 Drag:空气阻力 根据力移动对象时影响空气阻力大

    2023年04月09日
    浏览(41)
  • 笔记|Unity基础:碰撞体开关门、灯

    介绍:         单击大门的把手打开大门→单击灯的开关打开灯→单击房门的把手打开房门→单击房门的把手关闭房门→单击灯的开关关灯→单击大门的把手关闭大门 步骤:         ①在Hierarchy创建三个Empty(空对象),分别是Door_house, Door_room1, light_offon               

    2024年02月11日
    浏览(37)
  • “Unity 输入变得简单:触摸事件和鼠标交互指南”

    了解触摸输入: 在 Unity 中,触摸输入是指用户的手指与移动设备、平板电脑或任何支持触摸的平台的屏幕之间的交互。 在Unity中,触摸输入是使用Input类捕获的,该类提供了检测触摸事件的方法。 Unity 支持多种类型的触摸输入,包括: 单点触控输入: 这涉及到单个触摸点的

    2024年04月13日
    浏览(34)
  • 在vue项目中使用unity资源,实现页面和unity中事件的交互。

    1.将unity给的包放在public路径下。 2.在iframe中引入。 3.在vue项目中监听unity中的事件。关闭页面的时候需要销毁。 4.vue页面向unity发送参数信息。 5.在unity中的index.html文件中接收页面传来的参数。 6.调用unity内部的事件。

    2024年04月13日
    浏览(29)
  • Unity笔记(15):OnTriggerEnter2D [2D]

                实现碰撞后物体会消失。 注意玩家身上必须也挂载碰撞盒组件,才能碰撞成功。

    2024年02月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包