Unity:什么是Unity测量?

时间:2017-03-01 17:55:17

标签: c# unity3d coordinates unity5 measure

什么是Unity坐标测量? (cm,m,km)

如何实施真正的措施?

我想在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”等测量? (这个游戏有一个巨大的地图,它只有真正的公里)

3 个答案:

答案 0 :(得分:5)

在Unity中,由开发人员决定单位的含义。开发人员只需1米即可坚持使用1个单位。

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

float distanceInMeters = myVector2.magnitude

通过坚持1个1米的单位,您还可以测量两个位置之间的距离,如下所示:

float distanceInMeters = Vector2.Distance(positionA, positionB)

答案 1 :(得分:2)

Unity测量默认为米。如果您想更改这些单位,只需make a converter class

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

答案 2 :(得分:1)

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