Перейти к содержимому


Фотография

Вопрос по расположению одного юнита от другого


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 OFFLINE   RusSpec

RusSpec

    Ефрейтор

  • Пользователи
  • 50 сообщений
  • Откуда:Гусев

Отправлено 02 March 2017 - 03:44

Доброго времени суток все!

 

Назрели три вопроса, которые в течении длительного времени не могу решить.

 

 

1) Как проверить стоит ли один юнит и смотрит на спину другого? (Правильнее сказать, как проверить стоит ли юнит позади другого и утыкается в спину другому).

 

2) Как проверить стоит ли юнит выше другого?

 

3) Ну и соответственно как проверить стоит ли он ниже.

 

 

Заранее благодарю за ответы.


  • 0

#2 OFFLINE   hummer4x4

hummer4x4

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Kaliningrad

Отправлено 07 March 2017 - 11:29

По высоте подскажу.

(_unity getPos) select 1 > (_target getPos) select 1) Вот тебе высота.. Кординаты это же массив X, Y, Z


  • 0

#3 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 07 March 2017 - 16:23

RusSpec, вспомните вектора и операции над ними, решение сами найдете, а вот пару примеров что бы вспомнить:
if (((obj1 worldToModel (obj2 modelToWorld [0, 0, 0])) select 1) < 0) then
{
    //obj2 сзади obj1
}
else
{
    //obj2 спереди obj1
};
if ((abs((obj1 getRelDir obj2) - 180)) < 45) then
{
    //obj2 сзади obj1 (+-45 градусов)
}
else
{
    //obj2 спереди obj1 или сзади, но не в секторе +-45 градусов
};
if ((((getPosASL obj2) vectorDiff (getPosASL obj1)) select 2) < 0) then
{
    //obj2 ниже obj1
}
else
{
    //obj2 выше obj1
};

Сообщение отредактировал vlad333000: 07 March 2017 - 16:53

  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 07 March 2017 - 17:49

По высоте подскажу.

(_unity getPos) select 1 > (_target getPos) select 1) Вот тебе высота.. Кординаты это же массив X, Y, Z

На сколько вы уверены в вашем утверждении?

 

 

Кординаты это же массив X, Y, Z

где высота, это Z, то есть

(_unity getPos) select 2

  • 0

#5 OFFLINE   hummer4x4

hummer4x4

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Kaliningrad

Отправлено 07 March 2017 - 21:22

 

По высоте подскажу.

(_unity getPos) select 1 > (_target getPos) select 1) Вот тебе высота.. Кординаты это же массив X, Y, Z

На сколько вы уверены в вашем утверждении?

 

 

Кординаты это же массив X, Y, Z

где высота, это Z, то есть

(_unity getPos) select 2

Скорее всего так и есть, я работаю с другими векторными движками где Z считается плоскостью. По этому могу и ошибаться здесь


  • 0




Яндекс.Метрика