Unity学习——碰撞器

Posted DWQY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity学习——碰撞器相关的知识,希望对你有一定的参考价值。

  Unity中碰撞器使用了Collider组件
  碰撞器的前提必须有刚体组件(只有刚体才能发生碰撞嘛~),没有刚体即使加了碰撞器还是和没加一样会直接穿过没有反应

  Unity中提供了六种碰撞器:
  1)Box Collider(盒子碰撞器):适用于长方体,如门、墙、平台对象或者对象外壳
  2)Sphere Collider(球体碰撞器):适用于落石、球类游戏对象
  3)Capsule Collider(胶囊体碰撞器):用于Characters组件(角色控制器)或者与其他不规则碰撞器结合。Capsule和Cylinder会自动添加
  4)Mesh Collider(网格碰撞器):构建更精细的碰撞网格,只有开启Convex属性的Mesh Collider才能与其他Mesh Collider发生碰撞。Pland和Quad会自动添加
  5)Wheel Collider(车轮碰撞器):用于车轮
  6)Terrain Collider(地形碰撞器):用于地形,Terrain会自动添加

  碰撞器有几种常用属性:
  1)is Trigger:是否为触发器
  2)Material:碰撞器表面物理材质
  3)Center:位置
  4)Size:大小

  提到碰撞器就要说一下触发器Trigger,触发器是碰撞器的一个属性。触发器存在的价值在于如果想检测碰撞并且不想干扰物体的移动,就改用触发器进行检测。

  下面说明下几个常用碰撞检测函数:
  (1)Non-Trigger Collider(没有勾选is Trigger)
  此时与其他没有勾选is Trigger的物体会发生碰撞(与勾选的不会),有以下三种情况:

    // 刚开始接触碰撞区域时触发
void OnCollisionEnter(Collision other) 
// 不再接触碰撞区域时触发    
void OnCollisionExit(Collision other)
// 停留在碰撞区域中触发
   void OnCollisionStay(Collision other)

  (2)Trigger Collider(勾选了is Trigger)
  只要勾选了,碰撞器就会被忽略,无论对方是否勾选了is Trigger,都会直接穿过,但会触发下面函数:

    // 自己(勾选了)开始接触另一个(勾选了)触发
void OnTriggerEnter(Collider other)
  // 自己(勾选了)停止接触另一个(勾选了)触发
    void OnTriggerExit(Collider other)
     // 自己(勾选了)一直接触另一个(勾选了)不断触发
    void OnTriggerStay(Collider other) 

因作者水平有限,如有错误之处,请在下方评论区指出,谢谢!

unity编辑碰撞器不见

参考技术A unity编辑碰撞器不见有可能是没有添加。unity3D碰撞器的添加可以通过在Component中点击Physics2D,PolygonCollider2D,可对一个不规则形状的对象添加碰撞体。
1、碰撞器(Collider)是组件,加了碰撞器的游戏物体才可能实现碰撞效果。
2、在Unity内部提供了许多碰撞器,通过AddComponentPhysics可以添加3D碰撞器组件1。
3、Unity提供的组件有:BoxCollider(盒碰撞器),SphereCollider(球碰撞器),CapsuleCollider(胶囊碰撞器),MeshCollider(网格碰撞器),WheelCollider(轮子碰撞器,用来创建交通工具),TerrainCollider(地形碰撞器),CharacterController(角色控制器)。

以上是关于Unity学习——碰撞器的主要内容,如果未能解决你的问题,请参考以下文章

Unity --- 物理引擎 --- 触发器 与 碰撞器详解

Unity学习——碰撞器

[Unity学习笔记:FPS游戏制作]子弹拖尾,碰撞与枪口火焰效果

unity同一个gameobject上可以同时存在碰撞体和触发器吗

关于Unity中物理引擎的使用

Unity 2D 轨迹渲染器碰撞