Приветствую! При разработке различных игр, нам очень часто приходится отслеживать позицию курсора мыши. И в данной статье мы как раз этим и займёмся.
Сначала нам необходимо найти с помощью свойства Input.mousePosition, текущее положение мыши в пиксельных координатах. А далее, с помощью метода Camera.ScreenToWorldPoint, мы преобразуем положение мыши в пиксельных координатах в мировое пространство. Полученное значение занесём в переменную diference.
void Update()
{
Vector3 diference = Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
Для наглядного отображения того, какие значения хранятся в переменной diference, используем метод Debug.Log():
void Update()
{
Vector3 diference = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Debug.Log(diference);
}
После запуска нашего скрипта, двигайте мышь по игровому полю, и в окне Console Вы увидите постоянное изменение значений переменной diference, в которой и хранится информация о текущем положении мыши относительно мирового пространства.
Позиция курсора мыши относительно Объекта
Обычно, при создании игр, например какого-нибудь шутера, позицию курсора мыши следует считать не относительно мирового пространства, а относительно вашего персонажа, который производит выстрел. Поэтому код, который мы писали выше, следует немножко отредактировать:
void Update()
{
Vector3 diference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
}
Как Вы могли заметить, мы в конце строки дописали transform.position, в котором хранится информация о положении вашего персонажа, то-есть объекта, который производит выстрел. Таким образом, отняв значения позиции Вашего персонажа, расчёт позиции курсора мыши будет производится НЕ относительно всего мирового пространста, а относительно вашего персонажа - где Ваш персонаж будет являться центром системы отсчёта.
Теперь, после того, как Вы научились получать значение курсора мыши в реальном времени, Вы можете использовать это для вращение вашего персонажа в сторону курсора, или для стрельбы в сторону курсора, или для каких-либо ещё целей.
Если Вам понравился данный Гайд, буду рад Вашим лайкам и комментариям :)