Unity 中 Vector2 和 Vector3 上 0f 和 0 的区别

问题描述 投票:0回答:1

最近开始学习Unity教程,角色控制器的脚本如下:

Vector2 inputVector = new Vector2(0, 0);

if (Input.GetKey(KeyCode.W)) {
    inputVector.y = +1;
}
if (Input.GetKey(KeyCode.S)) {
    inputVector.y = -1;
}
if (Input.GetKey(KeyCode.A)) {
    inputVector.x = -1;
}
if (Input.GetKey(KeyCode.D)) {
    inputVector.x = +1;
}

inputVector = inputVector.normalized;

Vector3 moveDir = new Vector3(inputVector.x, 0f, inputVector.y);
transform.position += moveDir;
Debug.Log(inputVector);

我知道“0f”是这样的,所以 0 被注册为浮点数而不是整数,但是为什么 Vector3 中需要这个而不是 Vector2 中,即使它们都需要浮点数?

谢谢, 随机代码享受者

c# unity-game-engine floating-point
1个回答
0
投票

对于 Unity 开发者来说,这很奇怪,但并非不正确。据我所知,他们只使用 inputVector 进行键盘输入(对于操纵杆,您需要将其更改为浮动),并且键盘只能是 -1, 0, 1,但我再重复一次,您通常会,因为使用 floa 更正确,因为您可能想让设备数量更广泛,而手机上的操纵杆和操纵杆使用 float。

© www.soinside.com 2019 - 2024. All rights reserved.