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