Главная » Статьи » Программирование » Unity |
Следование камеры за персонажем
В большинстве игр есть два важных моменты, которые касаются камеры:
Обычно скрипт, который отвечает за выполнение данного действия, лучше поместить на объект за которым следует основная камера потому, что ее удобно получить через “Camera.main”. Первое что нужно сделать - получить размеры нашего экрана в мировых координатах (если в вашей игре изменяется масштаб, то эти данные нужно будет пересчитывать каждый раз при изменении масштаба).
Тут мы получаем расстояние в мировых координатах от центра до левого нижнего и правого верхнего углов. Далее нужно будет определиться, всегда ли будет игрок находится в центре экрана или камера будет к нему "привязана" и на 1-5 см. может отставать от игрока. Я рассматриваю ситуацию, когда камера будет на веревочке, поэтому рассчитываю по 20% от центра экрана к его краям в мировых координатах.
Этот и выше приведенный код нужно будет положить в метод “Start” нашего скрипта. В методе “Update” будем производить расчеты координат нашей камеры.
На всякий случай напоминаю, что данный скрипт висит на объекте за которым следует камера. С помощью функции Mathf.Clamp(float,float,float) вычисляем x и y так, чтобы они учитывали возможное отклонение камеры на 20% от центра. Далее необходимо учесть координаты границ нашего мира (как вы их считаете это уже ваше дело потому, что я понятия не имею как вы генерируете мир). Мой мир создается из Tiled поэтому, я просто получаю минимальные и максимальные координаты с границ Mesh Render.
Вот собственно и все координаты камеры получены с учетом границ нашей карты. Осталось только установить полученные координаты нашей камере и получим желаемый результат.
| |
Просмотров: 1746 | | |
Всего комментариев: 0 | |