Игра Unity Mini-Golf: координаты мыши по координатам мяча? - PullRequest
0 голосов
/ 01 декабря 2018

Я создаю игру в мини-гольф в Unity.Механика для стрельбы по мячу должна быть механикой щелчка и перетаскивания.Я хочу, чтобы мяч оставался на той же оси Y, что и игровое поле.При том, что у меня есть, ось y шара остается той же, но точки x и z шара не следуют за моей мышью, как мне бы хотелось.В настоящее время они вращаются вокруг SphereCollider LaunchPoint, но мяч не соединен с мышью.Я искал решения, но у меня нет опыта работы с камерами, как в Unity, поэтому они не помогли мне понять что-либо.

Вот мой код:

void Update () {
    // If ball is not in aimingmode, dont run this code
    if (!aimingMode) return;

    // Get the current mouse position in 2D screen coordinates
    Vector3 mousePos2D = Input.mousePosition;
    mousePos2D.y = launchPos.y;


    // Find the delta from the launchPos to the mousePos2D
    Vector3 mouseDelta = mousePos2D - launchPos;
    // Limit the mouse delta to the radius of the spherecollider
    float maxMagnitude = this.GetComponent<SphereCollider>().radius;
    if(mouseDelta.magnitude > maxMagnitude)
    {
        mouseDelta.Normalize();
        mouseDelta *= maxMagnitude;
    }

    // Move the ball to this new position
    Vector3 projPos = launchPos + mouseDelta;
    projectile.transform.position = projPos;

    if (Input.GetMouseButtonUp(0))
    {
        // The mouse has been released
        aimingMode = false;
        projectileRigidbody.isKinematic = false;
        projectileRigidbody.velocity = -mouseDelta * velocityMult;
        projectile = null;
    }
}

Будет ли решение как-то связано с ScreenToWorldCoordinates или чем-то подобным?Я пытался использовать этот метод, но получил ошибку, которая, по-моему, связана с камерой, говоря: «Ссылка на объект не установлена ​​на экземпляр объекта».(Примечание: камера находится в режиме перспективы).Точная линия, которую я использовал для этого, была:

Vector3 mousePos3D = Camera.main.ScreenToWorldPoint(mousePos2D);

Может ли кто-нибудь объяснить, как получить координаты мяча в качестве координат мыши?

РЕДАКТИРОВАТЬ: Ну,ошибка была смущающей очевидной ошибкой.Я как-то изменил тег моей основной камеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...