【问题标题】:Unity 4.6 Canvas - How to correctly apply 2D physics effectsUnity 4.6 Canvas - 如何正确应用 2D 物理效果
【发布时间】: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


【解决方案1】:

如果您仍然遇到此问题,解决放大对象的移动速率问题的方法是提高移动力和重力。如果您无法使某些元素正常工作,请使用可以设置为任何强度的推力器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多