zoukankan      html  css  js  c++  java
  • 碰撞器和触发器

    一.概述

      物理系统中要产生碰撞效果需要碰撞的两个物体都有碰撞器并且至少一个物体持有刚体组件。想要让两个物体表现出不同的物理效果,可以为刚体组件添加物理材质。在制作像自动门等游戏物体时可以使用触发器使碰撞的两个物体取消碰撞产生的物理效果。

    二.物理碰撞相应函数

      在MonoBehaviour的生命周期函数中,在循环更新的函数部分,物理效果有关的更新是最先执行的,这些函数中常用的有FixedUpdate函数和OnTriggerXXX、OnCollisionXXX等函数,后两个函数就是处理游戏碰撞相关的。

    1.OnCollisionXXX函数

        //进入物理碰撞时
        private void OnCollisionEnter(Collision collision)
        {
            
        }
        //在物理碰撞中
        private void OnCollisionStay(Collision collision)
        {
            
        }
        //物理碰撞结束时
        private void OnCollisionExit(Collision collision)
        {
            
        }
        //2D的进入物理碰撞函数
        private void OnCollisionEnter2D(Collision2D collision)
        {
            
        }
        //2D的物理碰撞中函数
        private void OnCollisionStay2D(Collision2D collision)
        {
            
        }
        //2D的物理碰撞结束时
        private void OnCollisionExit2D(Collision2D collision)
        {
            
        }

    3D游戏的物理碰撞函数和2D游戏不同,但是都是一个套路的,接下来也仅以3D为例。物理碰撞函数都有3个,分别是OnCollisionEnter(当两个物体的碰撞器接触的一瞬间)、OnCollisionStay(当两个物体的碰撞器持续接触中)、OnCollisionExit(当两个物体的碰撞器脱离接触的瞬间)。物理碰撞函数的参数是Collision类的一个变量,这个类如下图:

     其中有11个属性和4个方法,其中一些比较常用的属性如下:

    collider:碰撞到的碰撞器的触发器信息;gameObject:碰撞到的碰撞器依附的游戏物体;transform:碰撞到的碰撞器依附游戏物体的位置信息;contactCount:碰撞点个数;contacts:所有碰撞点。

    2.OnTriggerXXX函数

        private void OnTriggerEnter(Collider other)
        {
            
        }
        private void OnTriggerStay(Collider other)
        {
            
        }
        private void OnTriggerExit(Collider other)
        {
            
        }

    和Collision函数相同,同样有3个函数分别对应开始碰撞时、碰撞中、碰撞结束时触发,有3D的触发器函数也有2D的触发器函数。注意:要想使用触发器,也就是取消碰撞的物理效果,两个物体的碰撞器中至少一个碰撞器必须勾选isTrigger参数:

     三个函数的参数都是Collider类对象,这个类如下图:

     这个对象保存了碰撞的物理材质、刚体等信息。

  • 相关阅读:
    移动端适配问题
    面试题
    c++学习之路
    es6特性
    ndoe安装依赖注意的问题
    如何阻止button默认的刷新页面操作
    npm 全局安装模块,出现XXX不是内部或外部命令解决方法
    .Net MVC系统源码与教学视频《资源分享系列6》
    Javascript书店课程设计《资源分享系列4》
    Python教程与源码《资源分享系列4》
  • 原文地址:https://www.cnblogs.com/movin2333/p/14460457.html
Copyright © 2011-2022 走看看