Страница 1 из 1

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

СообщениеДобавлено: 25 окт 2012, 19:55
Lone
Мне нужно определить видит ли игрок объект(префаб) или не видит(те. находиться в пределах видмости камеры)?
если да то например i=1 если нет то i=0
как такое возможно реализовать?

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

СообщениеДобавлено: 25 окт 2012, 20:28
seaman
Physics.Raycast

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

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

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

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

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

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

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

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


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

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

Синтаксис:
Используется csharp
        public bool checkVisible ()
        {
                return GeometryUtility.TestPlanesAABB (GeometryUtility.CalculateFrustumPlanes (Camera.main), transform.gameObject.collider.bounds);
        }

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

СообщениеДобавлено: 25 окт 2012, 20:47
seaman
И тот и другой способ НЕ определяют - видит ли игрок объект. Они определяют - находится ли объект во фрустуме камеры. Ну а то что объект может быть перекрыт другими объектами - неважно?

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

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


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

Но вообще, вы правы. Я для НПС и игроков тоже хочу сделать еще и рейкэст, чтобы плашка с именем не была видна, если её что-то перекрывает.

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

СообщениеДобавлено: 25 окт 2012, 21:23
seaman
На самом деле для игрока действительно это редко когда нужно. А вот для ботов это важно.