【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)

这篇具有很好参考价值的文章主要介绍了【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.物理碰撞检测响应函数

现有:
【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)
Lesson16脚本的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson16 : MonoBehaviour
{
    //1.碰撞发生时 自动执行此函数
    //参数 Collision 就是碰到"我"的那个对象
    private void OnCollisionEnter(Collision collision)
    {
        //Collision的关键信息:
        //1.得到Collision的碰撞器:collision.collider
        //2.得到Collision依附的对象:collision.gameObject
        //3.得到Collision依附的对象的位置信息:collision.transform
        //4.得到我们俩有多少个接触点:collision.contactCount
        //  得到各个接触点的具体信息:ContactPoint[] pos = collision.contacts;
        print(this.name + "被" + collision.gameObject.name + "碰撞了");
    }

    //2.碰撞持续时 自动循环执行此函数
    private void OnCollisionStay(Collision collision)
    {
        print(this.name + "和" + collision.gameObject.name + "持续碰撞中");
    }

    //3.碰撞结束时 自动执行此函数
    private void OnCollisionExit(Collision collision)
    {
        print(this.name + "和" + collision.gameObject.name + "分离了");
    }
}

运行:
【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)

2.触发器检测响应函数

何为触发器:勾选了碰撞器的Is Trigger参数,这个游戏物体就会变成一个触发器
【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)
现有:
【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)
【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)
Lesson16脚本的代码:

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

public class Lesson16 : MonoBehaviour
{
    //1.接触发生时 自动调用此函数
    //参数 Collider 是碰到我的那个对象的碰撞器
    private void OnTriggerEnter(Collider other)
    {
        print(this.name + "被" + other.gameObject.name + "触发了");
    }

    //2.两者水乳相容 自动循环调用此函数
    private void OnTriggerStay(Collider other)
    {
        print(this.name + "和" + other.gameObject.name + "水乳相容中");
    }

    //3.两者分离时 自动调用此函数
    private void OnTriggerExit(Collider other)
    {
        print(this.name + "和" + other.gameObject.name + "分离了");
    }
}

运行:
【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)

3.明确什么时候会响应函数?

1.只要脚本挂载的对象 能和别的物体产生碰撞或触发,那么上面那六个函数就能够被相应
(有物理效果的相应的是"物理碰撞检测响应函数",有触发效果的相应的是"触发器检测响应函数")
2.如果是一个异形物体,刚体在父对象上,如果想通过子对象身上挂脚本来检测碰撞是行不通的
必须挂载到这个带刚体的父对象上才行
3.要明确 物理碰撞相应和触发器相应的区别文章来源地址https://www.toymoban.com/news/detail-408999.html

4.碰撞和触发器函数都可以写成虚函数,在子类中被重写

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

public class Lesson16 : MonoBehaviour
{
    //注意:访问修饰符需要写成 protected
    //     没必要写成public,因为不需要自己手动调用
    protected virtual void OnTriggerEnter(Collider other)
    {
        print(this.name + "被" + other.gameObject.name + "触发了");
    }
}

到了这里,关于【Unity】图解 碰撞检测函数,一看就懂!(OnCollisionEnter、OnCollisionStay、OnCollisionExit、OnTriggerEnter......)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 一看就懂的java对象内存布局

    前言 Java 中一切皆对象,同时对象也是 Java 编程中接触最多的概念,深入理解 Java 对象能够更帮助我们深入地掌握 Java 技术栈。在这篇文章里,我们将从内存的视角,带你深入理解 Java 对象在虚拟机中的表现形式。 学习路线图: 1. 对象在哪里分配? 在 Java 虚拟机中,Java 堆

    2024年02月05日
    浏览(40)
  • C# for循环案例1 (一看就懂)

     效果:  用f10可以清楚的看到程序执行的每一步,  #region for循环 /*   语法:     for(表达式1;表达式2;表达式3) {    循环体; } for(表达式1;表达式2;表达式3)   表达式1 定义循环的次数,可以理解为循环变量。表达式2 执行的条件。 表达式3,改变循环的条件,使循环条件不

    2023年04月11日
    浏览(56)
  • C# 一看就懂的装箱拆箱案例

    在C#中,装箱(Boxing)和拆箱(Unboxing)是值类型与引用类型之间相互转换的过程。 当一个值类型(如整数、结构体或枚举等)需要转换为对象(System.Object)或接口类型时,系统会自动创建一个新的对象实例,并将该值类型变量的值复制到新创建的对象中。这个过程就称为装

    2024年02月02日
    浏览(39)
  • AI —— 一看就懂的代码助手Copilot获取教程

            随着chatgpt的发布,人工智能领域近期站上了风口浪尖。GitHub Copilot由github与 OpenAI 合作创建,是世界上第一个使用 OpenAI 的 Codex 模型(GPT-3 的后代)制作的大规模生成式 AI 开发工具。GitHub Copilot 作为 AI 结对程序员开启了软件开发的新时代,通过自动完成注释和代

    2024年02月02日
    浏览(53)
  • 微信小程序实现倒计时功能,一看就懂,直接用

    结构完整,直接用就可以

    2024年02月01日
    浏览(60)
  • java三层架构,有图有案例有代码,一看就懂!!!

    三层架构 三层结构解释: 视图层:主要是用于与用户进行交互,比如接收用户输入的内容将返回结果向用户展示等。 业务逻辑层:实现每个功能的特定的逻辑方法。 数据访问层:主要是与数据库进行连接,然后对数据库进行增删改查工作。 结构一: 包的层级结构: 三层结

    2024年02月03日
    浏览(44)
  • 如何在android运行lua脚本(最简单的讲解,一看就懂)

    1.打开 android studio 2.引入luaj-jse-3.0.1.jar包(百度自行下载) 3.新建assets文件夹 4.在assets文件夹下新建一个 main.lua文件,内容如下 5.MainActivity.java 内容如下 5.运行程序

    2024年02月11日
    浏览(32)
  • 【Pandas】四个例子掌握用Python进行数据分析!一看就懂!

    本文选取了四个经典案例,主要聚焦Pandas在数据分析中的简单应用,结合代码学习利用Python进行数据分析过程(●ˇ∀ˇ●)。在每个例题开始前,我们将会标注出本例题涉及的重要知识点,并在重要处添加解释和代码注释,共读者参考。 如果你遇到任何问题,欢迎在评论区一起

    2024年02月17日
    浏览(61)
  • 一看就懂的保姆级教程:open vn设置 (亲测通过)

    OpenVPN是一款优秀用于创建虚拟私人网络的软件,但是由于其涉及了服务器证书、TLS密钥、防火墙等一堆衍生概念,因此设置显得比较复杂。本文化繁为简,仅以 “能连通” 这个最低要求,完整地展示了一遍OpenVPN的安装调试过程。万事开头难,在实现了连通的基础上再来探索

    2024年02月02日
    浏览(45)
  • 正则表达式 运算符优先级与匹配规则 | 一看就懂!!!(四)

    目录 一、正则表达式 - 运算符优先级 (一)正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。 (二)相同优先级的从左到右进行运算,不同优先级的运算先高后低。 (三)下表从最高到最低说明了各种正则表达式运算符的优先级顺序:  二、正

    2024年02月12日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包