Полезное

Мы Вконтакте

Discord канал

#
Пред.
12
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 7
Суть такова:
Есть первый Actor Component - StateBaseActComp, есть второй AC - StateControllerActComp.
В "StateControllerActComp" создаю переменную типа StateBaseActComp "Object Reference" (я вообще все пытался использовать: "Object Reference", "Class Reference", "Soft Object Reference", "Soft Class Reference") и называю её Health.
Суть проблемы такая:
1. Добавляю StateControllerActComp в персонажа.
2. В StateControllerActComp -> EventGraph -> Event Begin Play -> SetMaximum (Health): 100.
3. Выдается ошибка: "Blueprint Runtime Error: Accessed None trying to read property Health from function: 'ExecuteUbergraph_StateControllerActComp' from node: Set Maximum in graph: EventGraph in object: StateControllerActComp with description: Accessed None trying to read property Health"

Health которая находится в StateControllerActComp не имеет значения.
Как этой несчастной переменной Health задать значение? Как вообще любой объектной переменной задать значение, чтобы она работала?
В программирование же используется сначала объявление объектной переменной, а потом вызывается конструктор. Как вызвать конструктор для переменной Health в StateControllerActComp?
Аватара пользователя
Пользователь
Сообщения: 7
Еще раз.

1. Есть Actor Component "StateBaseActComp", который содержит некоторые переменные и функции.
Изображение

2. Создаю переменую "Health" типа "StateBaseActComp" в Actor Component "StateControllerActComp".
Изображение


3. Помещаю Actor Component "StateControllerActComp" в персонаж.
Изображение

4. Запускаю.
Изображение


Почему переменная "Health" в "StateControllerActComp" не содержит значение, и соответственно ведет к ошибке, описанной ранее?

Я так понимаю что переменная объявлена, но не инициализирована.
Последний раз редактировалось JustSo 06 июл 2018, 14:36, всего редактировалось 1 раз.
Аватара пользователя
Пользователь
Сообщения: 589
Я чет не пойму, ты хочешь получить переменную из одного блюпринта в другой, без каста и без ничего или что? Так конечно работать ничего не будет... Или что я не понимаю...
Аватара пользователя
Пользователь
Сообщения: 7
Agny писал(а):
Я чет не пойму, ты хочешь получить переменную из одного блюпринта в другой, без каста и без ничего или что? Так конечно работать ничего не будет... Или что я не понимаю...

В AC "StateControllerActComp" есть переменная Health типа AC "StateBaseActComp" (рис. 2). Как вызвать функцию Health -> SetValue (рис. 4) или любую другую (рис. 1), без ошибки?
Аватара пользователя
Пользователь
Сообщения: 589
Если Health вроде у тебя как жизни. Только почему это компонент, а не просто переменная Float ?
Аватара пользователя
Пользователь
Сообщения: 7
Agny писал(а):
Если Health вроде у тебя как жизни. Только почему это компонент, а не просто переменная Float ?

Agny, ты можешь ответить на вопрос как в одном AC вызвать функцию другого AC, которая в первом AC объявлена как переменная?!
Аватара пользователя
Пользователь
Сообщения: 7
Блин, ну кто-нибудь!
Аватара пользователя
Пользователь
Сообщения: 589
Её можно передать через интерфейс например.



Или что то опять не понял?
Аватара пользователя
Пользователь
Сообщения: 7
Agny писал(а):
Её можно передать через интерфейс например.



Или что то опять не понял?

Поставлю вопрос по другому. Как эту переменную объявить динамически? Переменная "Health" - всего лишь пока ссылка, которая ничего не содержит. Как в классе AC "StateContrallerActComp" задать ей значение динамически (не присваевая какое-то существующее значение, а создать динамически новое!), а потом вызвать одну из вункций, например SetValue!
Я честно, уже не знаю как по другому обяснить.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница