如果我的画布在世界空间中呈现,我可以检测UI组件和游戏对象之间的碰撞。在这里,当画布呈现模式为屏幕空间叠加时,我试图找到两个UI元素之间(比如UI按钮)的碰撞。
我给我的UI按钮添加了盒状碰撞器组件,并尝试使用OnCollisionEnter2D和OnTriggerEnter2D方法。但是,碰撞没有被检测到。是否有一种方法来检测碰撞?
如果我的画布在世界空间中呈现,我可以检测UI组件和游戏对象之间的碰撞。在这里,当画布呈现模式为屏幕空间叠加时,我试图找到两个UI元素之间(比如UI按钮)的碰撞。
我给我的UI按钮添加了盒状碰撞器组件,并尝试使用OnCollisionEnter2D和OnTriggerEnter2D方法。但是,碰撞没有被检测到。是否有一种方法来检测碰撞?
这个问题不需要代码实现。然而我已经找出了一个解决方案。对于两个UI元素,你需要:
rigidbody2d
组件isTrigger
复选框。现在,在附加到一个UI元素的脚本中:
void OnTriggerEnter2D(Collider2D other)
{
Debug.Log ("Triggered");
}
这将检测到碰撞。