Godot的Normalized()函数说明

豆包,我按住2个方向键,godot打印出来的变量是(0.7,0.7),不是说用了Normalized()函数,只能是整数吗?

cs 复制代码
        // 键盘输入
        Vector2 inputDir = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
        inputDir = inputDir.Normalized();

        GD.Print($"Input: {inputDir}"); // 输出输入向量,调试用

核心答案:

Normalized () 不会把数字变成整数!它只会把向量长度变成 1,但里面的数字依然是小数。

为什么斜着走是 (0.7, 0.7)?

你同时按 → 和 ↓:

原始输入向量是 (1, 1)

这个向量的长度是 1.414

Normalized() 会把它缩放到长度 = 1

所以变成 (0.707..., 0.707...)

这是正常、正确、标准的结果!

那什么时候才会是整数?

只有 4 个正方向 才会是整数:

上:(0, -1)

下:(0, 1)

左:(-1, 0)

右:(1, 0)

8 个斜方向永远是小数!

简单总结一句

Normalized () = 让向量长度变成 1

不是让数字变成整数!

相关推荐
狂人开飞机1 天前
23、实战平台跳跃游戏
游戏·游戏引擎·godot
狂人开飞机2 天前
27、实战物理益智游戏
游戏·游戏引擎·godot
狂人开飞机3 天前
21、游戏架构设计模式
游戏·游戏引擎·godot
烛阴3 天前
Godot 4 入门(04):CharacterBody2D 实现八方向移动
godot
狂人开飞机5 天前
14、游戏手感与视觉打磨
游戏·游戏引擎·godot
狂人开飞机5 天前
15、音频系统
游戏引擎·godot
狂人开飞机5 天前
16、粒子线条与视觉特效
游戏引擎·godot
狂人开飞机6 天前
11、UI系统
游戏引擎·godot
狂人开飞机6 天前
10、相机系统
游戏引擎·godot
烛阴8 天前
Godot 4 入门(03):用第一份 GDScript 驱动节点
godot