【发布时间】:2015-05-16 00:52:58
【问题描述】:
有没有办法在画布上普遍乘以物理二维计算?
我正在尝试制作一组具有 2D 物理属性的画布 UI 元素。这些对象包含图像和文本,但需要响应重力、冲击以及与其他 GUI 元素重叠的碰撞框。
我已将 2D RigidBody 和 boxCollider 组件添加到我的对象中。然而,它们移动得非常缓慢。如果给予重力,它们会缓慢下落。如果重叠,它们会慢慢相互推开。
我发现这是由于画布的比例非常大。我的对象实际上“非常大而且非常远”。
- 我无法修改画布比例。它需要很大,否则我会得到渲染伪像。
- 我不能只修改重力,因为它不能提供通用修复。事物跌落得更快,但它们不会推开或弹开。
- 我无法修改时间步,因为它会影响整个世界,而不仅仅是画布。
我的画布对象的宽度接近 80,而统一物理期望宽度接近 1。我怎样才能让它们表现得像宽度为 1?
基于画布的物理是否有一些通用的缩放因子,或者我只是将画布误用于它不适合的用途?
【问题讨论】:
-
Canvas 用于 UI 元素。如果您想应用物理,请改用 2D Sprites。
-
问题是我想将物理元素拖到 UI 元素的顶部。如果我可以用画布控制渲染顺序,我就可以了。我也许可以用世界空间画布做点什么,但这会打开一个不同的蠕虫罐......
-
你可以在上面渲染它们。
-
我可以将它们与画布元素交错,以便将它们绘制在某些组件的前面和其他组件的后面吗?
-
当然。画布具有覆盖排序。或者您可以在不同的排序层中使用许多画布。
标签: user-interface canvas unity3d physics