Войти
Unreal EngineФорумBlueprints

UDK4 blueprints нужна помощь (3 стр)

Страницы: 1 2 3
#30
19:27, 23 янв. 2020

Mephistopheles
Я конечно не специалист по блупринтам но кое что спрошу.
А instance editable параметр у компонента инвентаря для слотов ты пробовал делать? Т.е. твой max slots должен быть таковым.
Т.е. в самой функции у тебя не будет точечки с max slots, но если выделить квадратик add bp inventory то в верхнем правом углу будет max slots где указано defaults число и он по идее создастся с дефолтовым значением которое ты указал.


#31
19:43, 23 янв. 2020

i4ugui
> А instance editable параметр у компонента инвентаря для слотов ты пробовал
> делать?
это убирает модификатор "readonly" у проперти или типа того.

i4ugui
> то в верхнем правом углу будет slots где указано defaults и он по идее
> создастся с дефолтовым значением которое ты указал.
Его потом ресайзить придется тк инвентари разных размеров могут быть. Если я правильно понял что ты предлагаешь.

функция add bp inventory это по сути фабрика с изменяемыми параметрами, они определяются галочкой Expose on spawn у пропертей. Дефолты можно задать при декларации проперти, спец поле для этого есть.

Изображение
#32
19:50, 23 янв. 2020

Убери expose on spawn и оставь instance editable. Ну а ресайзишь ты его только на старте при создании, или если в рантайме хочешь то сделаешь отдельную функцию внутри компонента.

#33
19:54, 23 янв. 2020

i4ugui
> Ну а ресайзишь ты его только на старте при создании,
больше кода в вызывающих методах, зачем?

i4ugui
> или если в рантайме хочешь то сделаешь отдельную функцию внутри компонента.
Тот же вопрос, зачем делать больше кода(да еще и не очевидного) если можно делать меньше кода?

Только не предлагай обернуть это в функу которая создаст и ресайзнет и вызывать ее:)

#34
19:57, 23 янв. 2020

Mephistopheles
Ничего не понимаю, у тебя параметр max slots будет применяться сразу же на старте как ты и просил, если ты где то еще дергаешь свои max slots из других мест для ресайзинга в компоненте то значит у тебя уже есть функция такая.

#35
20:05, 23 янв. 2020

i4ugui
>Ничего не понимаю
компоненты могут создаваться двумя способами - декларативно и рантайм
декларативно все работает как ты говоришь
рантайм, мой случай, событие beginplay стреляет до установки фабрикой значений. ресайз после создания будет работать, но это лишняя плашечка(и куча флажков и проверок внутри) которую нужно вызывать везде где идет рантайм создание инвентаря, такая не очевидная инициализация хороший способ прострелить себе ногу

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

#36
20:10, 23 янв. 2020

Mephistopheles
Я создавал компонент как у тебя было нарисовано, протянул соединительные шланги внутри актора из begin play до add component, это декларативно или рантайм? У меня стоит print внутри этого component в его begin play и печатает сообщение что установленный параметр 10(я установил в add component) вместо 5 по дефлоту.

#37
20:20, 23 янв. 2020

i4ugui
> в его begin play и печатает сообщение что установленный параметр 10
Если бы у меня это работало, то вопроса бы не было:)
Почему у тебя работает, а у меня нет не знаю, нужно исходники смотреть. Но сейчас оно работает через конструктор, а как известно: работает - не трогай:)

#38
20:27, 23 янв. 2020

Mephistopheles
Я рискну предположить что тебе стоит отказаться от read only, если ты там это установил на max slots.

#39
20:28, 23 янв. 2020

i4ugui
> Я рискну предположить что тебе стоит отказаться от read only
его там и нету, галочка его убирает как раз.

#40
14:11, 10 июня 2020

Внезапно потребовалось сменить для уровня GameMod, использую level streaming из блюпринтов, а там декларативно ставиться этот Gamemod на "родительский" уровень и не могу найти как его поменять.

суть проблемы -
1)загружается родительский уровень <- ему ставится GameMod(почти дефолтный) в настроек уровня
2)туда грузится уровень c главным меню
3)Игрок нажимает начать игру
4)загружаем уровни для игры <- вот тут нужно заменить GameMod на GameMod с правилами игры для этих уровней

лоадер для уровней выглядит так
https://blueprintue.com/blueprint/61a7uqx5/

И вот как сменить GameMod в рантайме я никак не могу найти.
Заранее спасибо:)

Страницы: 1 2 3
Unreal EngineФорумBlueprints

Тема в архиве.