Движение снаряда с заданным пользователем углом и скоростью с использованием RigidBody2D - PullRequest
0 голосов
/ 05 ноября 2018

Отредактировано: У меня есть ползунок от 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");
    }
}
...