получить доступ к переменной из уровня проекта в нереальном движке 4 - PullRequest
0 голосов
/ 04 июня 2018

У меня есть переменная, которая обновляется каждый раз, когда я перемещаю свой куб в чертеже уровня, теперь я хочу получить доступ к этой переменной из нескольких чертежей классов, что мне делать, я пробовал приводить к gamestate, но не смог, ядействительно плохо знаком с ue4, если вы могли бы объяснить подробно, пожалуйста,

edit: извините, что не добавляю детали, переменная, к которой я хочу получить доступ, представляет собой целое число с именем cube_side, которое сообщает мне, на какой стороне куба находится каждый раз, когда я перемещаюсь,все это происходит на уровне bp, я хочу получить доступ к этой переменной, чтобы увидеть, на какой стороне куба находятся чертежи других классов -> вот некоторые детали на рисунке

Я знаюнехорошо кодировать все в чертеже уровня, но сейчас уже слишком поздно, мне нужно только передать var cube_side в чертежи других классов, чтобы другой объект мог меняться в зависимости от того, на какой стороне куба находится.

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Создайте класс актера для вашей логики / функциональности.Затем используйте Получить всех актеров класса (выберите свой класс) -> Получить копию -> Получить переменную

enter image description here enter image description here

0 голосов
/ 04 июня 2018

Связь с планом уровня довольно сложна в UE4, поскольку они не такие постоянные, как, например, GameMode, и поэтому к ним нельзя обращаться напрямую (представьте себе старые игры, такие как Final Fantasy, где новый уровень загружался каждый раз, когда вы заходилиза пределами границ, так что полагаться на это может привести к поломке ваших актеров или крушению игры из-за nullptrs).


Это немного странно, но работает:

Переместите переменную внутри кубического проекта.Добавьте диспетчер событий в куб, если он перемещен, вызовите его и передайте переменную.

Выберите куб в редакторе, откройте чертеж уровня, щелкните правой кнопкой мыши, «Добавить ссылку на выбранного актера»(куб должен быть частью класса светокопии, а не только статической сетки, перетянутой внутрь) и связывать диспетчер событий внутри BP уровня.

Создайте функцию внутри каждого проекта, которому требуется доступ к переменной, которая делает все, что должна, в зависимости от переменной.

Настраиваемое событие уровня Bp (которое было связано сДиспетчер событий куба), требуются ссылки на все акторы, которые должны работать, когда переменная изменяется и вызывает каждую функцию Actors (вы можете получить ссылки, как вы получили ссылку из куба)

Затем каждыйКогда переменная изменяется, уровень BP уведомляется, пользовательское событие выполняется, и это пользовательское событие вызывает все функции актера.

Объяснение диспетчеров событий


Это огромная потеря функций / кода, так как он нужен только для этого одного уровня и может никогда не использовать его снова.Избегайте этого в будущем, не слишком полагаясь на уровень BP.

...