C# - 使用转向操纵杆时可变速度

时间:2013-08-28 21:02:42

标签: c# unity3d trigonometry joystick radians

我正在使用屏幕/虚拟操纵杆制作游戏。它自动操作的操纵杆很好。

我想要的是当你转动操纵杆时,子弹向那个方向射击。我也有这个工作。现在当操纵杆不在边缘/半径时拍摄子弹时会出现问题。

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

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

有谁知道如何实现这一目标?我完全陷入了困境。

谢谢!

编辑:因为我根本不理解这一点,基本上我想要的是我在一个圆圈内有一个圆弧点,我想在圆的边缘得到那个点的位置。

所以,假设我有一个弧度的Vector2。

    Vector2(-0.3, 0.3);

,圆的半径为40。

从圆心到Vector2点的长度可能在某处

    radius = 40 * 0.3 = 12

现在,当长度为40时,Vector2指向的是什么?

我似乎无法弄清楚这一点。三角函数不是我最强的观点。

1 个答案:

答案 0 :(得分:0)

我修好了!我只是乘以一个非常大的数字的操纵杆的localPosition,以便localPosition woul落在半径之外。然后我只使用clampMagnitude将其放在半径的边缘。现在我得到了正确的行为。