Что такое модель агента в контексте языка программирования?

Грубый обходной путь, который я использовал в прошлом:

Создайте 2 объекта и сделайте их потомками объекта вашего игрока.

Поместите один из них в (-1,0,0) локально и назовите его LeftObj. Поместите другой в (1,0,0) и назовите его RightObj.

Теперь вы можете просто проверить, что ближе к цели, чтобы выяснить, какой из них наиболее эффективен.

float LDist = Vector3.Distance(LeftObj.transform.position, target.transform.position);

float RDist = Vector3.Distance(RightObj.transform.position, target.transform.position);

if (LDist < RDist){

    // Turn left

}else{

    // Turn right

}

Не самый эффективный метод, но его просто и быстро настроить, и он говорит вам четко «влево или вправо» независимо от значений вращения.

Очевидным недостатком является то, что вы не можете получить значение поворота для масштабирования крутящего момента, когда приближаетесь к цели, поэтому вам может потребоваться увеличить angularDrag на жестком теле вашего игрока, чтобы сгладить некоторое заикание. 116]

8
задан Vasil 30 April 2012 в 08:28
поделиться

1 ответ

Я думаю, что Википедия подводит итог его лучше всего:

Модель Actor принимает философию, что все - агент. Это подобно всему, объектная философия, используемая некоторыми языками объектно-ориентированного программирования, но отличается, в котором объектно-ориентированное программное обеспечение обычно выполняется последовательно, в то время как модель Actor по сути параллельна. [надрез] модель Actor о семантике передачи сообщений.

3
ответ дан 6 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: