seaman 02 сен 2011, 23:18
В-общем да, вопрос был непонятен до этого.
Решение может быть, например, следующим.
На всех НПС и на всех Игроков вешаем дочерний пустой объект. К нему цепляем сферический коллайдер диаметром таким, на котором нужно определять наличие врага и устанавливаем у этого коллайдера галку IsTrigger. К НПС и Игрокам цепляем скрипт, в котором реализуем метод OnTriggerEnter. В этом методе проверяем в какой триггер вошли и видимость "обладателя" триггера. Если вошли в триггер иного игрока/НПС и обладатель виден - делаем что надо.
Как определить что вошли в нужный триггер? В OnTriggerEnter передается Collider, а по нему легко найти gameObject и все что с ним связано.
Как определить видимость? Пустить луч из позиции gameObject1 (этого скрипта) в позицию gameObject2 (с которым столкнулись). Если луч ударится в gameObject2 - значит ничего его не загораживает.
По моему это наименее затратный метод в Вашем случае. Есть еще варианты с пусканием нескольких лучей, но мне кажется, что это более затратные методы.