美文网首页
碰撞器与触发器(collider&trigger)

碰撞器与触发器(collider&trigger)

作者: 迷途小路 | 来源:发表于2019-08-07 17:52 被阅读0次

有时候分不清collider里的trigger的用法,不知道什么时候会碰撞,有时候会穿过,在这里进行辨析一下,都是我自己简单的理解,如有错误,欢迎指正。

Collider:碰撞器,用于检测自己的碰撞,有大小。
Trigger:触发器,用于检测自己的穿透,有大小。
rigidbody:刚体,物体的运动物理属性,无大小。
触发器和碰撞器的区别在于是否将Collider的Is Trigger勾上。

我们实验来说明一下,先生成一个Cube做地面,再生成2个实验体Sphere和Capsule,


image.png

这两个都加上刚体rigidbody,Sphere的 isTrigger 勾上,另一个不勾


image.png

他们的Use Gravity都勾上,即使用重力


image.png
运行发现,Sphere穿过了地面
image.png

如果把地面的isTrigger勾上,则无论2个实验体的isTrigger是否勾上,落下时都会穿过。
由此我们发现,

  • 要使物体间穿透,这两个物体至少一个是触发器。
  • 触发器使得可以被穿透,不论穿过它的物体是否是触发器。
    这就好像是《火影》里带土的能力,当发动身体的虚化时,就像自己的身体成为了一个触发器,成为了一个“虚体”,别的物体都可以穿过。

rigidbody

我们给Sphere加上移动的脚本

public class PlayerController : MonoBehaviour {
    Rigidbody rigidbody;
    Vector3 v3;
    public int speed = 2;
    // Use this for initialization
    void Start () {
        rigidbody = transform.GetComponent<Rigidbody> ();
    }

    // Update is called once per frame
    void Update () {
        float x = Input.GetAxis ("Horizontal");
        float y = Input.GetAxis ("Vertical");
        v3 = new Vector3 (x, 0, y);
        rigidbody.AddForce (v3 * speed);
    }
}

移动起来后去碰撞Capsule,发现Capsule是否加上rigidbody会影响Capsule的反应,没加rigidbody时纹丝不动,加上后一碰即倒。说明刚体rigidbody反应了物体的运动属性。


image.png

触发的方法

    // 进入触发范围调用
    void OnTriggerEnter (Collider other) {
    }
    // 触发范围内持续调用
    void OnTriggerStay (Collider other) {
    }
    // 离开触发范围调用
    void OnTriggerExit (Collider other) {
    }

碰撞的方法

// 碰撞开始调用  
    void OnCollisionEnter (Collision other) {
    }
    // 碰撞持续时调用
    void OnCollisionStay (Collision other) {
    }
    // 碰撞结束调用
    void OnCollisionExit (Collision other) { 
    }

注意只有2个物体都是碰撞器时才会触发各自的OnCollsionXXX方法,否则都只会触发各自的OnTriggerXXX方法,即使有一个为碰撞器,另一个为触发器。

相关文章

  • 碰撞器与触发器(collider&trigger)

    有时候分不清collider里的trigger的用法,不知道什么时候会碰撞,有时候会穿过,在这里进行辨析一下,都是...

  • 碰撞器与触发器的区别

    Unity3d中的碰撞器和触发器的区别? 答:1.碰撞器物体不能互相进入到对方内部,触发器可以 2.触发器角色控制...

  • BulletDemo

    用到知识点:刚体、碰撞器、触发器、射线

  • 03碰撞器与触发器

    在U3D中没有碰撞器,那么物体之间就会悬浮,不会有日常的一些逻辑效果。 碰撞器(Collider)类型## 1、静...

  • 05_Jungle Wars Client

    地形设计 刚体+碰撞器+触发器 LightMapping 导航系统,导航网络 Animator,Animation...

  • Unity之碰撞器与触发器

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的...

  • MySQL之触发器

    本文主要介绍MySQL中触发器的相关知识与应用,为什么使用触发器,以及如何使用触发器。 I、触发器简介 如果我们想...

  • U3d物体碰撞触发器Collider

    1.当物体只有碰撞器的时候 2.当物体上有触发器trigger时,只检测触发,不进行碰撞。(被碰撞一方上需要是tr...

  • 触发器 ,物理材质 射线(Ray)

    触发器: 俩个物体上都有碰撞器至少带有一个刚体,并且俩个物体至少有一个物体打开 碰撞器事件: 1.OnTrigge...

  • unity碰撞检测(碰撞器,触发器)

    Unity中的碰撞检测主要由两个组件完成 刚体Rigidbody 碰撞体Collider碰撞的必要条件 发生碰撞的...

网友评论

      本文标题:碰撞器与触发器(collider&trigger)

      本文链接:https://www.haomeiwen.com/subject/eqmmdctx.html