--- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by LT. --- DateTime: 2024/8/23 17:10 --- MyVehicleSystem = MyVehicleSystem or {} MyVehicleSystem.VehicleClassName = "STExtraWheeledVehicle" MyVehicleSystem.SpawnVehiclePointPath = UGCGameSystem.GetUGCResourcesFullPath('Asset/Blueprint/SceneActor/BP_VehicleSpawnPoint.BP_VehicleSpawnPoint_C') function MyVehicleSystem.GetVehicleBaseClass() if MyVehicleSystem.VehicleBaseClass == nil then MyVehicleSystem.VehicleBaseClass = ScriptGameplayStatics.FindClass(MyVehicleSystem.VehicleClassName) end return MyVehicleSystem.VehicleBaseClass end function MyVehicleSystem.GetSpawnVehiclePointClass() if MyVehicleSystem.VehicleBaseClass == nil then MyVehicleSystem.VehicleBaseClass = UE.LoadClass(MyVehicleSystem.SpawnVehiclePointPath) end return MyVehicleSystem.VehicleBaseClass end --- 保存当前场景中载具的信息 function MyVehicleSystem.SaveAllVehicleTF(MapIndex) MyVehicleSystem.AllVehicleTF = {} --local AllVehicles = {} --AllVehicles = ScriptGameplayStatics.GetActorsOfClass(UGCGameSystem.GameState, MyVehicleSystem.GetVehicleBaseClass(), {}) --for i, VehicleInst in pairs(AllVehicles) do -- MyVehicleSystem.AllVehicleTF[#MyVehicleSystem.AllVehicleTF + 1] = {VehicleID = VehicleInst.VehicleConfigID, Pos = VehicleInst:K2_GetActorLocation(), Rot = VehicleInst:K2_GetActorRotation(), Inst = VehicleInst} --end --UGCLogSystem.LogTree("[MyVehicleSystem_SaveAllVehicleTF]", MyVehicleSystem.AllVehicleTF) MyVehicleSystem.AllVehicleTF = {} local AllVehicleSpawnPoints = ScriptGameplayStatics.GetActorsOfClass(UGCGameSystem.GameState, MyVehicleSystem.GetSpawnVehiclePointClass(), {}) for i, v in pairs(AllVehicleSpawnPoints) do UGCLogSystem.Log("[MyVehicleSystem_SaveAllVehicleTF] VehiclePath:%s", v.VehiclePath) if MapIndex == nil or MapIndex == v.MapIndex then MyVehicleSystem.AllVehicleTF[#MyVehicleSystem.AllVehicleTF + 1] = {VehiclePath = v.VehiclePath, Pos = v:K2_GetActorLocation(), Rot = v:K2_GetActorRotation(), Inst = nil} end end UGCLogSystem.LogTree("[MyVehicleSystem_SaveAllVehicleTF]", MyVehicleSystem.AllVehicleTF) end --- 移除场景中的载具 function MyVehicleSystem.DestroyAllSavedVehicle() for i, v in pairs(MyVehicleSystem.AllVehicleTF) do if UE.IsValid(v.Inst) then UGCVehicleSystem.DestroySelf(v.Inst) end end end --- 重置当前场景中的载具,需要先调移除 function MyVehicleSystem.ResetAllSavedVehicle() for i, v in pairs(MyVehicleSystem.AllVehicleTF) do MyVehicleSystem.AllVehicleTF[i].Inst = UGCVehicleSystem.SpawnVehicleNew(v.VehiclePath, v.Pos, v.Rot, true) UGCLogSystem.Log("[MyVehicleSystem_ResetAllSavedVehicle] Inst:%s", tostring(MyVehicleSystem.AllVehicleTF[i].Inst)) end end