如何使 2D 碰撞器随着它们绑定到的 UI 元素而缩放?

Fer*_*die 3 unity-game-engine unityscript unity3d-2dtools

我对 Unity 还很陌生,如果您对这个问题有任何帮助,我将不胜感激。

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

太棒了;有人知道如何使碰撞器缩放或环绕它们所绑定的 UI 元素吗?

用户界面布局图像

小智 6

因此,碰撞器与 UI 配合得很好。请记住,碰撞器以单位为单位工作,但画布以像素为单位。

如果您需要BoxCollider2D使用图像大小设置组件大小,则 需要检查Canvas Scaler.

这意味着,如果您的图像宽度为 100 像素,则需要将碰撞器比例设置为 100 个单位。

这是你需要做的:

gameObject.GetComponent<BoxCollider2D>().size = new Vector2 (
    gameObject.GetComponent<RectTransform>().sizeDelta.x,
    gameObject.GetComponent<RectTransform>().sizeDelta.y
    );
Run Code Online (Sandbox Code Playgroud)