物理碰撞检测相应的函数我们将通过print函数来举例说明:

在VS code中,我们可以通过输入OnCollisionEnter,然后按Tab键来补全该函数结构,其他的函数也相同。

private void OnCollisionEnter(Collision collision) {}
复制代码

如果我们想要碰撞触发接触时会自动执行的函数:

private void OnCollisionEnter(Collision collision) {}
复制代码

如果我们想要碰撞结束分离时会自动执行的函数:

private void OnCollisionExit(Collision collision) {}
复制代码

如果我们想要两个物体相互接触摩擦时会不停的调用的函数(这里要注意的是相对运动摩擦时会调用,只是静止接触可能并不会调用):

private void OnCollisionStay(Collision collision){}
复制代码

触发器检测响应函数

值得一提的是,该函数在使用时,需要将碰撞器的is Trigger选项勾选。

如果我们想要触发开始的函数,当第一次接触时会自动调用:

private void OnTriggerEnter(Collider other){}
复制代码

如果我们想要触发结束的函数,当水乳交融的状态结束时,会调用一次:


private void OnTriggerExit(Collider other) {}
复制代码

如果我们想要当两个对象一直接触触发时,在水乳交融的时候会不停调用:


private void OnTriggerStay(Collider other) {}
复制代码

我们在使用函数的时候,要明确什么时候会响应函数

1.只要挂载的物体能和别的物体产生碰撞或触发,那么对应的函数就能够被响应。

2.每个函数应当根据需求进行书写。

3.如果是一个组合物体,刚体父对象上没有碰撞器,但其子物体上有碰撞器的时候,在子物体上添加相关的脚本函数不会被触发,对其父对象添加脚本才会被触发。

4.要明确物理碰撞和触发器响应的区别。

我们一般会把想要重写的,碰撞和触发的函数都写成保护类型的,没有必要写成public类型,因为我们不会去自己手动调用,而是Unity通过反射帮助我们自动调用。

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

举个例子:

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 + "触发了");}
}

碰撞检测——碰撞检测函数相关推荐

  1. html5 canvas 像素 碰撞检测,碰撞检测 · HTML5 Canvas半知半解 · 看云

    ## 碰撞检测 碰撞检测是物体与物体之间的交互,其实在前面的边界检测也是一种碰撞检测,只不过检测的对象是物体与边界之间.在本章中,我们将介绍更多的碰撞检测,比如:两个物体间的碰撞检测.一个物体与一个点 ...

  2. 碰撞检测 碰撞检测,,碰撞检测是很多动画中必不可少的

    碰撞检测是很多动画中必不可少的,你必须掌握基于几何图形的碰撞检测.基于距离的碰撞检测方法,以及如何更有效的的检测多物体间的碰撞. https://www.kancloud.cn/dennis/canv ...

  3. 计算机图形学碰撞检测,碰撞检测——GJK算法

    基本概念 闵可夫斯基差(Minkowski difference) 凸体 和 两个物体相交,当且仅当其闵可夫斯基差包含原点. 单纯形(simplex) 这里相当于在闵可夫斯基差内迭代形成一个多面体,且 ...

  4. NeHe OpenGL教程 第三十课:碰撞检测

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  5. Direct2D处理几何图形之间的碰撞检测(下)

    Direct2D处理几何图形之间的碰撞检测(下) 原文:Direct2D处理几何图形之间的碰撞检测(下) 转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 上一篇 ...

  6. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程03:碰撞检测》

    2019独角兽企业重金招聘Python工程师标准>>> 3.碰撞检测 碰撞检测的概述: 碰撞在物理学中表现为两粒子或物体间极端的相互作用.而在游戏世界中,游戏对象在游戏世界自身并不受 ...

  7. canvas系列教程06 ——边界检测、碰撞检测

    边界检测 边界检测,即检测一个物体所处"运动环境的范围"(也就是边界). 边界限制(避免越界) if (ball.x < ball.radius) {//小球"碰到 ...

  8. 碰撞检测GJK算法论文解析一

    碰撞检测GJK算法论文解析一 碰撞检测 Objcet Representation And Distance 1.涉及的概念 2.内容详解 Preliminaries 1.涉及的概念 2.内容详解 碰 ...

  9. Cocos2d-x碰撞检测原理与英雄要打死怪物--之游戏开发《赵云要格斗》(7)

     这里是Evankaka的博客,欢迎大家前面讨论与交流------ 转载请注明出处http://blog.csdn.net/evankaka/article/details/42689689 本文将详 ...

最新文章

  1. tcmalloc mysql 缓存_Tcmalloc优化Mysql内存管理
  2. 科大讯飞与优刻得、寒武纪等联合设立合肥智能语音创新发展有限公司
  3. 【Java多线程】创建多线程的三种方式
  4. MySQL中述职类型的长度问题
  5. 20150318知识小结
  6. 《美团机器学习实践》—— 读后总结
  7. android activity 通知 service,android activity和service通信问题
  8. png2theora.c: undefined reference to `png_sizeof
  9. 使用TRADOS翻译软件助力论文写作-基本软件设置、谷歌GOOGLE和百度翻译平台接入
  10. 带weixin扫码登陆注册|仿城通网盘源码修复版
  11. 工业智能网关,数据采集网关
  12. 仿QQ音乐(别人的代码)
  13. 【移动网络】5GC:5G核心网络的移动性管理(Mobility Management)
  14. [半监督学习] ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring
  15. UR机械臂仿真和用上位机编程控制
  16. audio音频不能自动播放的解决方法
  17. 如何在文字识别软件ABBYY中创建区域模板,处理大量相同内容?
  18. 劫持网站防御技术,网站被劫持到其它网站的解决方法
  19. ofd转成html,如何把Word或者Excel文档转换为ofd格式?
  20. 网页脚本输入这么简单

热门文章

  1. 简单加减法(含负数)运算
  2. linux防火墙查看方法有,linux防火墙状态查看的方法实例
  3. 计算机图形学入门——笔记(一):计算机图形学概述
  4. v-for与v-if(v-show)的配合使用
  5. Python进程池的返回值
  6. getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED); not2 不兼容
  7. java之yield(),sleep(),wait()区别详解-备忘笔记[转]
  8. QML学习之QML常用的元素和属性
  9. Chrome浏览器Cookie的查看
  10. Surface go 虚拟机安装