【发布时间】:2022-01-11 02:16:21
【问题描述】:
我仍然是 Unity 的新手,我正在尝试制作一个自上而下的 2D 游戏,但我被移动脚本困住了,当我沿对角线移动时,移动速度更快。当我在“轴”vector2上使用归一化并开始移动时,播放器会继续移动一段时间,然后当我停止按下任何键时突然停止移动,当我移除归一化时,移动恢复正常并且播放器停止缓慢移动非常完美,但当我沿对角线移动时,它仍然更快。
这是我的代码:
{
Rigidbody2D rb;
Vector2 axis;
public float Speed = 400;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
movement();
}
void movement()
{
axis = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")).normlized * Speed;
rb.AddForce(axis, ForceMode2D.Force);
rb.drag = 60;
}
}
【问题讨论】:
-
请使用正确的标签!请注意,
unityscript是或更好的是曾经是一种 JavaScript 风格,类似于早期 Unity 版本中使用的自定义语言,并且现在已经不推荐使用了!您的代码位于c#。 -
它的速度更快,因为使用简单的数学运算,一个单元 1 的 2 条边的 99 三角形没有斜边 1,因此每次移动它移动得更远。