36 lines
1.2 KiB
Lua
Raw Normal View History

2025-01-04 23:00:19 +08:00
function LoadInitTable()
---@type table<int32, AActor>
local AllInitStarts = {};
UE.FindActorsByClass(ObjectPath.BP_ActorStart, AllInitStarts);
local NoTagActors = {};
local TagActors = {};
for i, Start in pairs(AllInitStarts) do
if Start.Tags:Num() > 0 then
for Tag, Obj in pairs(InitTable) do
if Start:ActorHasTag(Tag) then
-- 在此创建一个
if TagActors[Tag] == nil then TagActors[Tag] = {}; end
table.insert(TagActors[Tag], Start);
-- 直接生成
ObjectPath.AddFunc(Obj, function(TargetClass)
local Actor = UE.SpawnActor(TargetClass, GameState, VectorHelper.Add(Start:K2_GetActorLocation(), VectorHelper.MakeVector(0, 0, 50)));;
if InitTableActors[Tag] == nil then InitTableActors[Tag] = {}; end
table.insert(InitTableActors[Tag], Actor);
end);
end
end
else
table.insert(NoTagActors, Start);
end
end
UGCLogSystem.LogTree(string.format("[LoadInitTable] TagActors ="), TagActors)
UGCLogSystem.LogTree(string.format("[LoadInitTable] NoTagActors ="), NoTagActors)
UGCLogSystem.LogTree(string.format("[LoadInitTable] InitTableActors ="), InitTableActors);
end
InitTable = {
['Hold'] = "BP_HoldPoint",
};
InitTableActors = {};