Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Billboard модель
#4
Вобщем, методом нехитрых манипуляций мне удалось решить эту задачу!
Для куба код следующий:
Код:
[== Неизвестный ==]
v1x = ObjectGetPosition(camPos,0) - ObjectGetPosition(obj,0);
v1z = ObjectGetPosition(camPos,2) - ObjectGetPosition(obj,2);
angle = MathDotProduct(v1x, 0, v1z, 1, 0, 0);
if (ObjectGetPositionZ(obj) > ObjectGetPositionZ(camPos)) {
    angle = -angle;
} else {
    angle = angle;
}
ObjectSetRotation(obj, 0, angle, 0);

Для плоскости чуть другой:
Код:
[== Неизвестный ==]
v1x = ObjectGetPosition(camPos,0) - ObjectGetPosition(obj,0);
v1z = ObjectGetPosition(camPos,2) - ObjectGetPosition(obj,2);
angle = MathDotProduct(v1x, 0, v1z, 0, 0, 1);
if (ObjectGetPositionX(obj) < ObjectGetPositionX(camPos)) {
    angle = -angle;
} else {
    angle = angle;
}
ObjectSetRotation(obj, 0, angle, 0);

Пришлось добавлять скрипт MathDotProduct дабы рассчитать угол между векторами.
Ответ


Сообщения в этой теме

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)