如何使 2D 碰撞体与它们绑定的 UI 元素一起缩放?



我对Unity还很陌生,非常感谢在这个问题上的任何帮助。

我有这个设置,它使用我设计的屏幕分辨率效果很好。我相信当我更改分辨率时,UI 元素可以很好地缩放,但我刚刚发现我制作的碰撞体(图像中的红线)没有。目前,我正在使用添加到画布中的边缘碰撞体。我还尝试向每个面板添加单独的边缘碰撞体。然后我尝试了盒子对撞机。我尝试将面板 + 碰撞体变成预制件。一切都无济于事。我还尝试通过脚本设置边缘碰撞器的点,以便它们始终缠绕在面板周围,但我不会发生任何碰撞(注意:我不知道如何显示/渲染这个运行时生成的碰撞体,所以我不完全确定它们是否正是我想要的样子)。

有没有人知道如何使碰撞体缩放或环绕它们绑定的UI元素?

UI 布局图像

因此,碰撞体在UI上工作正常。请记住,碰撞体以单位工作,但画布以像素为单位。

如果需要使用图像大小设置BoxCollider2D组件大小,则需要检查用于参考Canvas Scaler上的每单位像素参数。

这意味着,如果你的图像宽度为100px,你需要在对撞机上设置100个单位。

这是您需要做的:

gameObject.GetComponent<BoxCollider2D>().size = new Vector2 (
    gameObject.GetComponent<RectTransform>().sizeDelta.x,
    gameObject.GetComponent<RectTransform>().sizeDelta.y
    );

最新更新