C#-使用转动操纵手柄时可变速

本文关键字:操纵 C#- | 更新日期: 2023-09-27 18:29:20

我正在制作一个游戏,使用屏幕/虚拟操纵杆。操纵杆本身工作良好。

我想要的是,当你转动操纵杆时,一颗子弹就会朝那个方向射出。我也做到了。现在,当操纵杆不在边缘/半径处时,在发射子弹时会出现问题。

当操纵杆处于边缘/半径时,子弹以最大速度移动,这正是我想要的。但是,比方说,当操纵杆位于操纵杆半径和中心之间时,子弹移动得较慢。这是合乎逻辑的,因为弧度和其他东西。

但这不是我想要的。应该发生的是子弹总是以最大速度移动。

有人知道这是怎么实现的吗?我完全陷入了困境。

谢谢!

编辑:因为我仍然不明白这一点,基本上我想要的是,我在一个圆内有一个弧度的点,我想得到这个点在圆边缘的位置。

假设这个向量2是弧度。

    Vector2(-0.3, 0.3);

并且圆的半径是40。

从圆心到Vector2点的长度可能在附近

    radius = 40 * 0.3 = 12

现在,当长度为40时,Vector2点会是什么?

我似乎想不通。三角测量显然不是我的强项。

C#-使用转动操纵手柄时可变速

我修复了它!我只是用一个很大的数字乘以操纵杆的localPosition,这样localPosition就会落在半径之外。然后我只需要使用clampMagnitude来获得半径的边缘。现在我有了正确的行为。