Войти
Unreal EngineФорумОбщее

Получение длины массива

#0
2:01, 10 фев 2022

Пытаюсь получить количество акторов на уровне с помощью приведения к их parent актору и  получению из него length. Код выглядит так:

+ Показать

Length всегда выдает 0, хотя акторов на уровне несколько. Сам parent актор на уровне также присутствует.
В чем может быть проблема?

#1
2:32, 10 фев 2022

Чет ты перемудрил.
getallactorofclass - length
и больше не нужно
ты каст на массив кидешь
он и должен по идее 0 выдать

#2
11:23, 10 фев 2022

563
> ты каст на массив кидешь

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

#3
(Правка: 11:32) 11:26, 10 фев 2022

drbass
> вот с этим бы поспорил, тут он берет не всех а 1 и потом пытается получить всех
> его детей
а да согласен, берет чисто последнего, я думал он массив получает
получилась логика типа getAllActorOfClass - get(0) - ну и в общем тоже 0 даст на выходе

#4
(Правка: 11:36) 11:32, 10 фев 2022

drbass
Я затупил не увидел что он одного взял
мой косяк, он вообще детей эктора получить пытается, ты на 100% прав.

#5
(Правка: 11:43) 11:36, 10 фев 2022

TommYMoonlight
для того, чтоб взять всех экторов, одного класса, вам нужна нода GetAllActorsOfClass. Та нода, которую вы используете, возвращает вам эктора под индексом 0, из всех экторов этого класса

GetAllActorsOfClass возвращает массив ссылок - вот с него и вытягивайте Length

А то, что вы пытаетесь сделать - это вы взяли самого старого эктора заданного класса, и проверили количество приаттаченных к нему экторов (например, вы обвешали его экторами с оружием)

Каст нужен в тех случаях, когда вы обращаетесь к общему классу, но вам нужно вытянуть функционал, который задан в дочернем классе. Т.е. переведя Cast<int>(a) на обычный язык: "мне нужно, чтоб "а" понимали как переменную инт".
Каст - это и есть "понимать как")

#6
11:38, 10 фев 2022

R1pp3R
Респект!
Правильно все описал.

#7
11:42, 10 фев 2022

563
> Респект!
спасибо :)

#8
16:43, 10 фев 2022

Спасибо всем за помощь, проблема решена. Отдельное спасибо R1pp3R и 563, решил по вашим советам с помощью использования ноды get all actors of class.

Unreal EngineФорумОбщее