ecsproto.ai.utility

0
README.md

Logo

UtilityAI для LeoECS Proto

Реализация UtilityAI для LeoECS Proto.

ВАЖНО! Требует C#9 (или Unity >=2021.2).

ВАЖНО! Зависит от: Leopotam.EcsProto, Leopotam.EcsProto.QoL.

ВАЖНО! Не забывайте использовать

DEBUG
-версии билдов для разработки и
RELEASE
-версии билдов для релизов: все внутренние проверки/исключения будут работать только в
DEBUG
-версиях и удалены для увеличения производительности в
RELEASE
-версиях.

ВАЖНО! Проверено на Unity 2021.3 (не зависит от нее) и содержит asmdef-описания для компиляции в виде отдельных сборок и уменьшения времени рекомпиляции основного проекта.

Социальные ресурсы

Официальный блог: https://leopotam.ru

Установка

В виде unity модуля

Поддерживается установка в виде unity-модуля через git-ссылку в PackageManager или прямое редактирование

Packages/manifest.json
:

"ru.leopotam.ecsproto.ai.utility": "https://gitverse.ru/leopotam/ecsproto.ai.utility.git",

В виде исходников

Код так же может быть склонирован или получен в виде архива со страницы релизов.

Прочие источники

Официальная работоспособная версия размещена по адресу https://gitverse.ru/leopotam/ecsproto.ai.utility, все остальные версии (включая nuget, npm и прочие репозитории) являются неофициальными клонами или сторонним кодом с неизвестным содержимым.

Основные типы

Решение

Это набор проверок, определяющих важность данного решения в конкретный момент времени, а так же набор действий, которые будут выполнены при выборе этого решения. Представлен пользовательским классом, реализующим интерфейс

IAiUtilitySolver
:

Метод

Solve()
возвращает важность/ценность решения без нормализации, значение может быть любым, будет выбрано самое лучшее решение по этой оценке.

Метод

Apply()
будет вызван только для того решения, которое было признано лучшим в данный момент времени.

Запрос

Это специальный скрытый компонент, добавляющийся на сущность, данные на которой требуется обработать. Для удобства вся работа скрыта за специальным методом в аспекте модуля:

ВАЖНО! Удалять компонент руками не нужно - он будет удален системами модуля автоматически при обработке.

Ответ

Это специальный компонент, добавляющийся на сущность, ранее помеченную запросом на обработку:

ВАЖНО! Удалять компонент руками не нужно - он будет удален системами модуля автоматически при обработке.

Подключение модуля

Лицензия

Расширение выпускается под лицензией MIT-ZARYA, подробности тут.