16 — Демонстраційний контент¶
🇬🇧 English | 🇺🇦 Українська
Плагін містить дві готові карти. Якщо корінь Plugins не видно в Content Browser, спершу увімкніть його через іконку налаштувань (шестерня) → Show Plugin Content, а потім перейдіть у Plugins → Fuzzy Logic Content → Demo, де кожне демо має власну підпапку:
FuzzyDroneArena/Maps/FuzzyDroneArena;FuzzyTurretDefense/Maps/FuzzyTurretDefense.
Дані, Blueprints, матеріали та карти лежать у Plugins/FuzzyLogic/Content/Demo. Їхні пакети належать плагіну, тому не потрібно копіювати файли до Content вашого проєкту.
Окремий модуль демонстрації¶
FuzzyLogic містить ядро нечіткого висновку. Код Drone Arena винесено до окремого runtime-модуля FuzzyLogicDemo; він не є залежністю ядра та не змінює роботу систем, компонентів, JSON або UMG.
Модуль потрібен картам Drone Arena та Turret Defense. У Turret Defense ігрова поведінка турелі, цілей, снарядів і фізичних гільз зібрана у Blueprints; модуль додає лише орбітальний контролер і панель живого нечіткого висновку у viewport. Гільзи з'являються з бічного вікна гармати, реагують на фізику, накопичуються на підлозі до 14 секунд і потім автоматично зникають.
Панель Fire Control у Turret Defense¶
У правому нижньому куті карта показує візуалізацію системи Fire Control. Вона малює три вхідні функції належності (AimError, ThreatPriority, WeaponHeat), агреговану поверхню FireAuthorization і помаранчеві маркери поточних чітких значень. Відображається саме поверхня, яку рушій використав для дефазифікації.
- Кнопки HIDE / SHOW — показати або сховати панель;
- Кнопка PAUSE / RESUME — зупинити чи продовжити симуляцію;
V,PабоSpace— відповідні швидкі клавіші.
Панель увімкнена за замовчуванням. Для графіків вона використовує публічні функції FuzzyLogicUMG, тому також слугує робочим прикладом для власного HUD.
Не включати демо в запаковану гру¶
Щоб зберегти приклади в редакторі, але не готувати їх для гри, додайте до Config/DefaultGame.ini вашого проєкту:
[/Script/UnrealEd.ProjectPackagingSettings]
+DirectoriesToNeverCook=(Path="/FuzzyLogic/Demo")
Після цього контент Demo не потрапляє у cooked build. Плагін і FuzzyLogic працюють як звичайно.
Зверніть увагу, чого це налаштування не робить: FuzzyLogicDemo — модуль типу Runtime, тож його код усе одно компілюється й лінкується в запаковану гру, а class defaults його акторів жорстко посилаються на меші /Engine/BasicShapes, за якими кукер піде. Якщо демонстрацію треба прибрати повністю — код, класи та посилання — скористайтеся наступним розділом.
Повністю виключити код демонстрації зі збірки плагіна¶
Це доступно лише для збірки плагіна з вихідного коду. У FuzzyLogic.uplugin видаліть запис модуля FuzzyLogicDemo, після чого не додавайте Source/FuzzyLogicDemo та Content/Demo до свого пакета. Ядро FuzzyLogic не посилається на цей модуль і продовжить збиратися без нього.