Unity:什么是 Unity 测量?

Unity: What is Unity Measurements?

什么是统一坐标测量? (厘米、米、公里)

如何在其中落实实实在在的措施?

我想在 Unity 中实施一个真正的措施。怎么做?

public Vector2 GetAsMeters (Vector2 vec) {
    Vector2 meters = new Vector2 (0, 0);
    while (vec.x > 1000) {
        vec.x -= 1000;
        meters.x++;
    }
    meters.x += vec.x;
    while (vec.y > 1000) {
        vec.y -= 1000;
        meters.y++;
    }
    meters.y += vec.y;
    return meters;
}

编辑:如何实现像"Left 4 Dead"这样的测量? (这游戏地图超大,真公里那么长)

在 Unity 中,由开发人员决定单位的含义。开发人员坚持 1 个单位就是 1 米是很常见的。

如果这样做,您可以通过简单地检索 Vector2 的大小来计算 Vector2 的长度(以米为单位)。

float distanceInMeters = myVector2.magnitude

通过坚持 1 单位为 1 米,您还可以像这样测量两个位置之间的距离:

float distanceInMeters = Vector2.Distance(positionA, positionB)

如果你想要 1:1 像素测量,请不要忘记将精灵的 pixelperunit 更改为 1,这样你在游戏中的矢量测量对精灵像素大小更准确

Unity 度量默认以米为单位。如果你想改变这些单位,你只需要 make a converter class.

确保从 Maya、3Dmax 或您正在使用的任何 3D 程序导入米,因为默认情况下它们的测量单位为 cm