Рейтинг
0.00
голосов: 0

О блоге

Сборник статей по одному из простейших (в плане уровня входа) систем разработки игр Unity3d.

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (0)

Читателей здесь не замечено

Raycast из центра экрана вперёд Unity3d

Очень коротко напишу, для собственного запоминания, как пустить луч из центра экрана (а там находится курсор мыши и он зафиксирован, а так же там нарисован прицел) вперёд на нужную дистанцию.

Сделано это для поиска цели во время стрельбы с использованием Raycast.
Вот и сам пример:
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
Debug.DrawRay(ray.origin, ray.direction * 1000f, Color.green);

Сам луч ray создаётся преобразованием координат экрана в координаты мирового пространства.
Debug.DrawRay — используется для наладки. Функция рисует луч зелёного цвета
из центра ray.origin
по направлению ray.direction (*1000f — множитель расстояния около 1000 игровых метров).

Высота над головой Unity3D

Всем привет. Недавно начал заниматься Unity3D, сначала было много вопросов и пришлось штудировать форумы и блоги моих коллег. А теперь немного начал понимать, что к чему и решил выпустить свои статьи по тем вопросам, которые не удалось найти, но пришлось реализовывать.

В данный момент наша команда работает на революционным шутером от первого лица. Но про него пока не слова)

Так вот, вопрос возник самый простейший, как определить высоту потолка над головой персонажа. Скажем для ограничения высоты прыжка.

Казалось бы ничего сложного, пускаешь луч вверх и если пересекается с объектом, смотришь расстояние.
Пример:

RaycastHit hit;
if (Physics.Raycast (transform.position, Vector2.up, out hit, controller.height)) {
	Debug.log(hit.distance);
}


Читать дальше