Unity3d 碰撞R2D与碰撞2D

Unity3d 碰撞R2D与碰撞2D,unity3d,unity3d-2dtools,Unity3d,Unity3d 2dtools,在Youtube上做了一些视频教程之后,我意识到这两个课程看起来相似且重复 -碰撞2D- 当传入碰撞器与该对象的碰撞器接触时调用此方法(仅2D物理) -碰撞- 当另一个碰撞器与此对象接触时调用此方法 void OnTriggerEnter2D(Collider2D other) { Destroy (other.gameObject); } 两种方法都有相同的目的,看起来也一样。区别是什么?碰撞2D包含有关碰撞的信息,而碰撞R2D是碰撞对象的一个组件 正如您所看到的,目的是相似的

在Youtube上做了一些视频教程之后,我意识到这两个课程看起来相似且重复

-碰撞2D-

当传入碰撞器与该对象的碰撞器接触时调用此方法(仅2D物理)

-碰撞-

当另一个碰撞器与此对象接触时调用此方法

 void OnTriggerEnter2D(Collider2D other) {
    Destroy (other.gameObject);
}

两种方法都有相同的目的,看起来也一样。区别是什么?

碰撞2D
包含有关碰撞的信息,而
碰撞R2D
是碰撞对象的一个组件


正如您所看到的,目的是相似的,但并不相同。

我仍然对Collision2D感到困惑。我的意思是,我可以在UI中看到并轻松创建碰撞的R2D对象,但在哪里可以创建碰撞2D对象?对不起,我的新手问题。哈哈。@ggDeGreat,你不会创建碰撞2D对象。这是当您在CollisionCenter上处理该事件并发生该事件时传递给您的类。。。它是由unity engine中的2d物理系统创建的。通过它你可以找到碰撞点,例如,我明白了。还有一件事,这两个方法,即使它传递不同的类,但都可以访问所有碰撞信息,对吗?不同的是在触发期间调用了一个方法,而另一个则没有。@ggDeGreat,AFAIK Collized R2D无法访问碰撞中实际存在哪些点或相对速度的信息(但您可能可以自己计算这个)。。这在很大程度上取决于你需要什么。
 void OnTriggerEnter2D(Collider2D other) {
    Destroy (other.gameObject);
}