Skip to content

07 — Метання списа

🇬🇧 English | 🇺🇦 Українська

Карта /InteractionSystem/Demo/SpearRange/Maps/SpearRange повністю входить до плагіна. У Content Browser увімкніть Show Plugin Content, відкрийте InteractionSystem Content → Demo → SpearRange → Maps → SpearRange та натисніть Play.

На стійці стоять п'ять списів. Коли місцевий гравець із вільною рукою підходить до списа, на ньому з'являється жовта точка Nearby. Наведіть центр екрана на древко: точка зміниться на E, а підсвічування позначить вибраний спис. Натисніть E, оберіть напрямок і натисніть F. Поки ця рука тримає спис, решта списів не показують E або Nearby; після кидка їх знову можна вибирати. У VR друга вільна рука працює незалежно. WASD — рух, миша — огляд. Швидкість кидка — 28 м/с; для далеких мішеней прицілюйтеся вище, враховуючи силу тяжіння.

Влучання вістрям у мішень, землю або огорожу фіксує спис у поверхні. Підійдіть і натисніть E, щоб витягти його та кинути знову. Бічні удари відбиваються природно. Відмітки на полі відраховують 5, 10, 20, 30 та 40 метрів від лінії кидка.

Структура прикладу

  • AInteractionDemoSpear додає локальне підсвічування, жовту Nearby-точку, значок E та вирівнювання вільного хвату до AInteractionSpearActor із World. Радіус близькості задає неконфліктна overlap-сфера навколо середини списа; значки бачить лише локальний гравець, а під час утримання вони зникають. Спис стоїть у стійці вертикально, але після захоплення його вісь +X спрямована вперед за поглядом гравця.
  • AInteractionSpearDemoCharacter налаштовує підказки, дистанцію вибору, положення списа в руці та швидкість кидка. Взаємодія використовує публічний UInteractorComponent.
  • AInteractionSpearDemoGameMode вибирає цей character і спільний HUD демо.
  • SM_Spear — кореневий static mesh довжиною 230 см із simple collision. Він прихований і відповідає за захоплення та фізику. Сім дочірніх компонентів малюють древко, вістря, навершя, руків'я і три латунні обмотки без додаткової колізії. Напрямок вістря — +X; pivot розташований на нижньому кінці.
  • DA_SpearPhysics задає масу 2 кг, початкову нерухомість та вирівнювання за швидкістю під час польоту.

Mesh, material instances, data asset і карта зберігаються під /InteractionSystem/Demo/SpearRange. Підсвічування та зображення E/F спільні з InteractionLab, також усередині плагіна. Core не залежить від Demo; поведінка польоту та прикріплення залишається у World.

Для зміни вигляду відкрийте /InteractionSystem/Shared/Materials: M_SurfaceMaster має параметри BaseColor, Roughness, Metallic, а MI_Wood, MI_Metal, MI_Leather, MI_Matte та MI_Painted задають тип покриття. Дочірні MI_* у SpearRange змінюють лише потрібні значення. Наприклад, MI_BrushedSteel успадковує металевість від MI_Metal, а MI_Brass має власний колір. Матеріал підсвічування має окремий базовий граф M_FocusMaster → MI_Glow → InteractionLab/Materials/MI_Focus. Зміна успадкованого параметра батьківського інстанса оновлює його дочірні варіанти без редагування карт.

Сервер керує захопленням, кидком і влучанням. Для перевірки в редакторі можна запустити два клієнти через Play As Client. Порядок виключення демо з packaged game описано в 06 — Демонстраційний контент.