最近开始学习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 中,即使它们都需要浮点数?
谢谢, 随机代码享受者
对于 Unity 开发者来说,这很奇怪,但并非不正确。据我所知,他们只使用 inputVector 进行键盘输入(对于操纵杆,您需要将其更改为浮动),并且键盘只能是 -1, 0, 1,但我再重复一次,您通常会,因为使用 floa 更正确,因为您可能想让设备数量更广泛,而手机上的操纵杆和操纵杆使用 float。