什么是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”等测量? (这个游戏有一个巨大的地图,它只有真正的公里)
答案 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,这样您的游戏矢量测量对于精灵像素大小更准确