【问题标题】:Vector2D or Vector3D in 2D games2D 游戏中的 Vector2D 或 Vector3D
【发布时间】:2016-05-08 19:51:45
【问题描述】:

在 Unity3d 的 2D 游戏中使用 Vector2D 有什么缺点吗?还是我应该总是使用 Vector3D?它们似乎可以互换。

【问题讨论】:

  • “它们似乎可以互换。”它不仅看起来像,Vector2 实现了一个隐式运算符从一个转换到另一个(虽然 z 被丢弃,但它仍然是一个转换)。一般来说,Vector2 用于 UI 内容,Vector3 用于其他所有内容。 docs.unity3d.com/ScriptReference/Vector2.html
  • 您在上面写的内容中是否混淆了 2D 和 3D?当然,您在 2D 游戏中使用 2D。如果您在 2D 游戏中使用 3D,那很好,没有什么大问题。
  • 我注意到隐式演员表。我被问到这个问题,但并不完全确定答案。这是一款纯 2D 游戏。
  • 只需使用大多数函数本身作为参数的任何内容,以避免不必要的强制转换。但是除了这个演员表之外,还有很多事情会导致性能不佳,如果它是第一个寻找优化的地方。

标签: unity3d unity3d-2dtools


【解决方案1】:

只需在 2d 游戏中使用 Vector3。对象的所有位置仍绘制在 3 维空间中,因此如果您使用 Vector2D,则从 Vector2DVector3D 的转换只是不必要的,第三维将设置为 0。Vector3D's z 属性仍被考虑用于同一排序层上的精灵并且具有相同的“层中顺序”,因此请注意这一点。在大多数情况下,精灵的绘制顺序应该由它们的排序层和层属性中的顺序来处理。

Vector2D 在 2D 物理引擎中有很多用途,但您不必担心。如果你传递了Vector3D,那么它将被隐式转换,z 维度将被丢弃。

【讨论】:

    猜你喜欢
    • 2011-11-29
    • 2014-01-21
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多