Я работаю над игрой, в которой мне нужно стрелять в шар под углом и силой, определяемой двумя ползунками (1 ползунок угла, 1 ползунок мощности). В настоящее время у меня есть этот код для управления запуском шара:
public void shoot()
{
float angle = angleSlider.GetComponent<Slider>().value;
float power = powerSlider.GetComponent<Slider>().value;
gameObject.SetActive(false);
ball.GetComponent<Rigidbody2D>().simulated = true;
Vector2 releaseVector = Quaternion.AngleAxis(angle, transform.up) * transform.forward;
ball.GetComponent<Rigidbody2D>().velocity = releaseVector * (power/3);
}
с этим текущим кодом он работает почти идеально, за исключением одной вещи. Когда угол между 30 и 60, мяч запускается хорошо, но если я установлю его на 0 градусов, шар едва будет двигаться, и наоборот, если я установлю его на 90 градусов, мяч будет запускаться с гораздо большей силой. Как я могу установить постоянную скорость для всех градусов, чтобы скорость влияла только на слайдер мощности, пожалуйста? Спасибо.