Unity3d 统一检查两个旋转对象是否重叠

Unity3d 统一检查两个旋转对象是否重叠,unity3d,unity5,Unity3d,Unity5,有没有办法检查两个旋转对象(矩形变换)是否重叠?我尝试使用recttransform.rect检查它,但它仅在旋转为0时有效。有人能帮我吗?提前谢谢 if (myrecttransform.rectTransform.rect.Overlaps(line.GetComponent<RectTransform>().rect)){ //overlap } if(myrecttransform.rectTransform.rect.Overlaps(line.GetCompon

有没有办法检查两个旋转对象(矩形变换)是否重叠?我尝试使用recttransform.rect检查它,但它仅在旋转为0时有效。有人能帮我吗?提前谢谢

if (myrecttransform.rectTransform.rect.Overlaps(line.GetComponent<RectTransform>().rect)){
    //overlap
}
if(myrecttransform.rectTransform.rect.Overlaps(line.GetComponent().rect)){
//重叠
}

向它们添加碰撞器和标记,检查是否发生碰撞并比较标记

如果它是一个2d项目,那么您只需添加到它们中
Rigidbody2D
,然后使用它即可
gameObject.renderer.bounds.Intersects(object2.renderer.bounds)
向它们添加碰撞器和标记,检查是否发生碰撞并比较标记

如果它是一个2d项目,那么您只需添加到它们中
Rigidbody2D
,然后使用它即可
gameObject.renderer.bounds.Intersects(object2.renderer.bounds)

但是没有碰撞器怎么做呢?我从预置中创建了一个对象,所以我不能以正确的方式将collider设置为它。您可以在编译和运行时(通过脚本)轻松地为预置分配任何您想要的内容。如果想在没有碰撞器的情况下完成此操作,则必须找到在三维空间中查找相交平面的数学公式。您还可以指定碰撞器并使用
边界。相交
谢谢,但我使用的是2d UI对象,而不是3d对象。也许有一种方法可以在2d中实现?我附加了Rigidbody2D组件,但现在我有一个错误:“没有渲染器附加到对象”。这是非常奇怪的,因为我已经将画布渲染器附加到我的对象上了,但是没有碰撞器怎么做呢?我从预置中创建了一个对象,所以我不能以正确的方式将collider设置为它。您可以在编译和运行时(通过脚本)轻松地为预置分配任何您想要的内容。如果想在没有碰撞器的情况下完成此操作,则必须找到在三维空间中查找相交平面的数学公式。您还可以指定碰撞器并使用
边界。相交
谢谢,但我使用的是2d UI对象,而不是3d对象。也许有一种方法可以在2d中实现?我附加了Rigidbody2D组件,但现在我有一个错误:“没有渲染器附加到对象”。这很奇怪,因为我的objectsHow附带了CanvasRenderer,您是否使用了重叠。你能分享代码吗?我更新了post,当旋转为0时它能准确工作吗?你是如何使用重叠的。你能分享代码吗?我更新了post当旋转为0时它能准确工作吗?