Как вы стреляете пулями в позиции мышки - PullRequest
0 голосов
/ 12 марта 2019

Я недавно начал разрабатывать свою самую первую игру сверху вниз. Моя проблема не в том, чтобы точно знать, как заставить пулю идти туда, куда мышь направлена, во время активации пули. У меня есть функция мыши для лица, как показано здесь

void faceMouse()
{

    Vector3 mousePosition = Input.mousePosition;
    mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);

    Vector2 direction = new Vector2(
        mousePosition.x - transform.position.x,
        mousePosition.y - transform.position.y);

    transform.up = direction;
}

Тем не менее, я не уверен, как включить это, если вообще, чтобы иметь возможность стрелять в местоположение моей мыши. Заранее спасибо!

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете попробовать Quaternion.LookRotation(), который создает вращение на основе вектора вперед и вверх (Документация) . Затем вам нужно приложить это вращение к вашему объекту. Я использую что-то вроде этого:

cursorPos = mainCamera.ScreenToWorldPoint(Input.mousePosition);
var forwardDirection = transform.position - cursorPos;
//Vector3.forward because is the z axis which is up/down in 2D
Quaternion playerRotation = Quaternion.LookRotation(forwardDirection, Vector3.forward);
transform.rotation = playerRotation;
...