Jusper Jusper

Diabfall,

Да, можно.

Diabfall Diabfall

Jusper, спасибо. Еще короткий вопрос: можно же как-то отследить нажатие на коллайдер и то на какой именно коллайдер было совершено нажатие? Если ответ - да и да, то можешь закрывать тему.

Jusper Jusper

Вот один из примеров: https://habr.com/ru/post/472770/

Jusper Jusper

Делаешь UI менеджер и делаешь конфиг рыцарей. Когда игрок нажимает на рыцаря, UI менеджер ловит это через Listener, дергает его параметры и передает в окно. Окно при появлении делает update данных и отрисовывает результат...

...
Diabfall Diabfall

Jusper, смотри, что я хочу сделать. У меня будет таблица (панель) со списком "рыцарей". При нажатии на любого рыцаря из списка будет открываться отдельная панель с его параметрами. При этом число рыцарей мб рандомным...

...
Jusper Jusper

Вариантов не так много.
Либо ты делаешь через событие нажатия On Click, либо делаешь менеджер UI, который будет обрабатывать нажатие конкретной кнопки (а ее тоже надо будет определить) и set active для назначенного объекта...

Diabfall Diabfall

У меня есть одинаковые панельки. Когда я нажимаю уcловно button "Quests", выводится панелька "Quests", а все другие панельки закрываются. Ну и с другими панельками аналогично.
Мне просто показалось, что через On Click ...

Jusper Jusper

Давай конкретнее кейс.
У тебя есть панельки, когда ты нажимаешь на кнопку панелька открывается/появляется. Так?

Jusper Jusper

Diabfall,

Взгляни на следующие способы:

  • Static переменные (жует int, bool, string, float, double)
  • ...
Diabfall Diabfall

Jusper,

Да. Спасибо.

Jusper Jusper

Diabfall,

Да. Все заработало?

Diabfall Diabfall

ты про это?

Diabfall Diabfall

Действительно. Я наверное поехал просто и в глаза долблюсь.

Jusper Jusper

Поменяй сейчас все обратно на public и покажи мне как у тебя сделаны настройки на Input Field.

Jusper Jusper

Посмотрел видео, посмотрел pastebin с кодом.
В обоих случаях переменные CheckAge и CheckName публичные и доступ через событие кнопки On End Edit получается без лишних костылей.

...
Jusper Jusper

Брось ссылкой в оригинальную статью, по которой работаешь.

Jusper Jusper

Ato_Ome,

Слушай, а вполне себе ок получается.

TheDarkestRed TheDarkestRed

Более естественное освещение для The Darkest Red 🎮 🌘 🤺
https://vk.com/the_darkestred

Логотип проекта Unreal Engine

Внедрение Steamworks SDK в Unreal Engine

Внедрение Steamworks SDK в Unreal Engine

Steam SDK нужен для внедрения в игру различных функций Steam, такие как достижения, таблицы лидеров, мультиплеерная составляющая и прочие. В интернете множество различных инструкций, но все они переполнены ненужной информацией, и большинство из них для старых версий движка. Мы с вами сделаем всё максимально просто и быстро и без лишних телодвижений.

Если у вас ещё нет ID приложения, то не беда - мы будем тестировать всё на игре Spacewar - тестовая игра от Steam для таких случаев. В материале будет использоваться Unreal Engine последней версии - 4.22, но и на предыдущих версиях движка всё аналогично. Так же, в качестве примера, я буду использовать стандартный шаблон Анриала First-person shooter.

Online Subsystem Steam

Первым делом открываем проект и идём на вкладку Plugins (Edit -> Plugins) и активируем плагин Online Subsystem Steam. Потребуется перезапуск движка, о чём нам и сообщают.

Окно плагинов и Online Subsystem Steam в нём — Внедрение Steamworks SDK в Unreal Engine — Unreal Engine — DevTribe: инди-игры, разработка, сообщество
Окно плагинов и Online Subsystem Steam в нём

Копирование dll

Далее проходим в папку
/Epic Games/ваша версия движка/Engine/Binaries/ThirdParty/Steamworks/Steamv139

Обратите внимание, не в папку проекта, а в папку самого установленного движка. В этой директории находятся папки Win32 и Win64, а каждой из которых есть по файлу steam_api. Сейчас нам нужно добавить нужные dll. Переходим в папку с установленным Steam-клиентом и в ней находим и копируем файлы:

В папку Win64 движка:

  • steamclient64.dll
  • tier0_s64.dll
  • vstdlib_s64.dll

В папку Win32 движка:

  • steamclient.dll
  • tier0_s.dll
  • vstdlib_s.dll
Вид папки Win32 после копирования. В Win64 всё аналогично, только версии файлов для 64 бит. — Внедрение Steamworks SDK в Unreal Engine — Unreal Engine — DevTribe: инди-игры, разработка, сообщество
Вид папки Win32 после копирования. В Win64 всё аналогично, только версии файлов для 64 бит.

Конфигурация DefaultEngine.ini

Переходим в папку вашего проекта, в каталоге /Config находим файл DefaultEngine.ini и открываем его блокнотом. Вставляем в него следующие строки:

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam
PollingIntervalInMs=20

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="/Script/OnlineSubsystemSteam.SteamNetConnection"

Финал

Первоначальная настройка завершена! Запустите свой проект в режиме Standalone Game. Если всё прошло хорошо, то после запуска в правом нижнем углу вы увидите стандартную всплывающую подсказку Steam. Внимание! Steam-клиент должен быть запущен на вашем компьютере! В оверлее (Shift-Tab) будет светиться игра Spacewar - то самое приложение для тестов от Стима.

Оверлей игры Spacewar в стандартном шаблоне UE4 — Внедрение Steamworks SDK в Unreal Engine — Unreal Engine — DevTribe: инди-игры, разработка, сообщество
Оверлей игры Spacewar в стандартном шаблоне UE4

Если у вас уже есть ID вашей игры, то снова открываем DefaultEngine.ini:

  • Изменяем SteamDevAppId=480 на SteamDevAppId=ID вашего приложения
  • После неё добавляем строку SteamAppId=ID вашего приложения

(Скорее всего вы уже догадались, что 480 - это ID игры Spacewar)

Всё готово к работе! Теперь в вашу игру интегрирован Steamworks SDK и можно спокойно тестировать его функции на стандартном Spacewar. В следующей статье поговорим о том, как добавить достижения в вашу игру.

Смотрите также:


Комментарии



Спасибо большое за этот гайд! А то уже волосы дыбом от отсутствия инфы)) Хотелос бы больше по этой теме. Например, что дальше. Т.е. я подключился к тестовому серверу стим. Как теперь мне синхронизировать двух и более игроков, подключенных к комнате. Вобщем куча вопросов осталось.
Но все равно спасибо!

P.S. : Хотелось бы видеть простые примеры (с кубами) например. И реализацией на С++ в UE4

EfimovMax есть че сказать по этому поводу?

Справка