Определение Видит ли игрок Обект?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Определение Видит ли игрок Обект?

Сообщение Lone 25 окт 2012, 19:55

Мне нужно определить видит ли игрок объект(префаб) или не видит(те. находиться в пределах видмости камеры)?
если да то например i=1 если нет то i=0
как такое возможно реализовать?
Аватара пользователя
Lone
UNец
 
Сообщения: 23
Зарегистрирован: 15 сен 2012, 21:39

Re: Определение Видит ли игрок Обект?

Сообщение seaman 25 окт 2012, 20:28

Physics.Raycast
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Определение Видит ли игрок Обект?

Сообщение AMD 25 окт 2012, 20:38

Данная функция вызывается если объект находится в поле зрения хотя бы одной камеры. Удобно использовать для отключения не видных игроку игровых объектов в целях оптимизации. Разумеется если нет необходимости продолжать выполнение действий даже если объект скрыт.
OnBecameVisible()

Данная функция вызывается если объект не находится в поле зрения ни одной камеры.
OnBecameInvisible()

http://habrahabr.ru/post/128948/
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Определение Видит ли игрок Обект?

Сообщение Woolf 25 окт 2012, 20:42

AMD писал(а):Данная функция вызывается если объект находится в поле зрения хотя бы одной камеры. Удобно использовать для отключения не видных игроку игровых объектов в целях оптимизации. Разумеется если нет необходимости продолжать выполнение действий даже если объект скрыт.
OnBecameVisible()

Данная функция вызывается если объект не находится в поле зрения ни одной камеры.
OnBecameInvisible()

http://habrahabr.ru/post/128948/


Если бы она еще и работала нормально, цены бы ей не было ))

Я использую следующий метод:

Синтаксис:
Используется csharp
        public bool checkVisible ()
        {
                return GeometryUtility.TestPlanesAABB (GeometryUtility.CalculateFrustumPlanes (Camera.main), transform.gameObject.collider.bounds);
        }
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Определение Видит ли игрок Обект?

Сообщение seaman 25 окт 2012, 20:47

И тот и другой способ НЕ определяют - видит ли игрок объект. Они определяют - находится ли объект во фрустуме камеры. Ну а то что объект может быть перекрыт другими объектами - неважно?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Определение Видит ли игрок Обект?

Сообщение Woolf 25 окт 2012, 21:15

seaman писал(а):И тот и другой способ НЕ определяют - видит ли игрок объект. Они определяют - находится ли объект во фрустуме камеры. Ну а то что объект может быть перекрыт другими объектами - неважно?


Абсолютно не важно. Для проверки этой видимости есть Occlusion Culling. И это достаточно серьезная система с бинарными деревьями и продвинутыми алгоритмами.

Но вообще, вы правы. Я для НПС и игроков тоже хочу сделать еще и рейкэст, чтобы плашка с именем не была видна, если её что-то перекрывает.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Определение Видит ли игрок Обект?

Сообщение seaman 25 окт 2012, 21:23

На самом деле для игрока действительно это редко когда нужно. А вот для ботов это важно.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25