Показать сообщение отдельно
Старый 12.08.2010, 03:24   #187
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Сообщение от Den Посмотреть сообщение
Собственно в скрипте должно быть 3 переменные (2 угла, и одно радиум-растояние), и при этом надо проверить "видит" ли красный ГО зелёных.
Соображения были чтоб перечислять всех ГО, прверять дистанцию, и если дистанция<R то проверка на углы. А вот с углами не заладилось. Впринцепе можно штоб не 2 угла было, а один (β=α)
Если один угол (т.е. область видимости коническая), то все просто:
var forward Vecto3 thisTransform.forward;
var 
objectDirection Vecto3 otherTransform.position thisTransform.position;
var 
angle Vector3.Angle(objectDirectionforward);
if (
angle a)
{
  
// activate 

Если нужна область в виде усеченной пирамиды - то надо посчитать плоскости фрустума и проверить позицию или габаритный контейнер объекта на пересечение.


А по поводу осей я не нашел как в рантайме их перезадать. Так что либо вообще не менять управление, либо использовать стартовый диалог. Либо попробовать свой InputManager написать
__________________
Blitz3d to Unity Wiki

Последний раз редактировалось pax, 12.08.2010 в 12:29.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (12.08.2010)