Отредактировано:
У меня есть ползунок от 0 до 90 для пользователя, чтобы выбрать угол, и текстовое поле для ввода скорости. Во всех видео, которые я видел, люди либо используют свою физику, либо получают угол прямо из угла «пистолета» или положения мыши, но это не то, что мне нужно. Я получил его там, где гравитация влияет на него сейчас, но он просто падает после своего появления, даже если я установил скорость на 50. Я хочу, чтобы скорость определяла значения dx и dy в момент появления шара, но это кажется, этого не происходит.
Я полагаю, что могу получить значение ползунка с помощью GameObject.Find ("AngleSlider"). GetComponent (). AngleSlider.value
и должен иметь возможность сделать что-то похожее со значением текстового поля для скорости, если я могу привести его к плавающей запятой (?), так что я думаю, что я в порядке, если никто не заметит проблему с этим.
Любая помощь приветствуется для этого новичка. Спасибо!
Редактировать: По запросу я добавил код, который у меня есть для этой части. Это создатель мяча, который я прикрепил к пушке. Упомянутый CannonBall - это еще один скрипт, прикрепленный к сборному пушечному ядру. У меня есть общедоступные неинициализированные плавающие выражения dx, dy и speed в сценарии CannonBall.
public GameObject cannonBallPrefab;
public Transform shotPoint;
void Start () {
}
void Update () {
if(Input.GetKeyDown("space"))
{
GameObject ball = Instantiate(cannonBallPrefab, shotPoint.position, Quaternion.identity);
CannonBall ballMovement = ball.GetComponent<CannonBall>();
ballMovement.dy = Mathf.Sin(GameObject.Find("AngleSlider").GetComponent<SliderHandler>().angleSlider.value * Mathf.Deg2Rad) * ballMovement.speed;
ballMovement.dx = Mathf.Cos(GameObject.Find("AngleSlider").GetComponent<SliderHandler>().angleSlider.value * Mathf.Deg2Rad) * ballMovement.speed;
Debug.Log("ball is spawned");
}
}