Главная » Статьи » Программирование » Unity |
Как не дать объекту выйти за границы экрана или наоборот определить, когда враг появляется в пределах видимости? Последнее конечно проще узнать, проверив видимость Render с помощью функции renderer.isVisible. Очень часто в играх встречается ситуация, когда при управлении персонажем он может вылететь за границы экрана. Это может случиться даже в том случае, если вы установили барьеры по границам, которые недавно добавили в Unity, но объект может просто пролететь сквозь барьер, у меня таких случаев было не мало, когда я решил использовать эти барьеры на границах экрана. Поэтому предлагаю использовать способ, который я очень применяю в своих играх. Я написал небольшой пример, используя дефолтный лично для меня скрипт, который я всегда цепляю на объекты, если мне нужно, чтобы они не выходили за область видимости камеры.
Скрипт небольшой и совершенно не сложный, но полезный. Можно конечно использовать коллайдеры добавленные недавно в Unity, они еще сами по себе отталкивают объекты и их предназначением являются барьерные функции, но я заметил, что при сильном ударе об них объект можно просто застрять в барьере и там и останется. Можете конечно считать меня лохом, что у меня бывают такие глюки, но все-таки стараюсь оберегать себя уже давно проверенными способами. По поводу примера тут всего две функции Start и Update. В первой при запуске сцене произойдет вычисления координат барьеров leftBorder, rigthBorder - по оси X (левая и правая границы экрана), topBorder, bottomBorder - по оси Y (нижняя и верхняя границы экрана). В функции Update мы просто будем пересчитывать позицию объекта проверяю тем самым не выходит ли он за рамки так действует Mathf.Clamp(value,min,max) , если число выходит за рамки минимума и максимума, то функция вернет одно из двух. Далее проверяем этот скрипт. Создаем новый проект. Создаем на нем объект. Цепляем на него любой спрайт который заходим, я прикрепил на объект спрайт knob, это же так или иначе проверка, а не крутая игрушка. Пишем какой-нибудь скрипт для управления и цепляем его на объект и цепляем наш скрипт указанный выше. Запускаем сцену и смотрим, что получилось. Если вам лень делать тестовый пример самим, то можете скачать пример по ссылке - http://cod2014.ru/publ_files/unity/Lang.zip
| |
Просмотров: 5550 | | |
Всего комментариев: 0 | |