---@class BP_SpawnPickupWrapper_C:AActor ---@field Box UBoxComponent ---@field DefaultSceneRoot USceneComponent ---@field ItemID int32 ---@field DelayTime float --Edit Below-- ---@type BP_SpawnPickupWrapper_C local BP_SpawnPickupWrapper = { WrapperClass = nil; PickupWrapper = nil; }; function BP_SpawnPickupWrapper:ReceiveBeginPlay() self.SuperClass.ReceiveBeginPlay(self); if not self:HasAuthority() then return end self.WrapperClass = UE.LoadClass(UGCBackPackSystem.GetPickupWrapperClassPath(self.ItemID)) self:SpawnItem() end function BP_SpawnPickupWrapper:SpawnItem() if UE.IsValid(self.WrapperClass) then self.PickupWrapper = ScriptGameplayStatics.SpawnActor(UGCGameSystem.GameState, self.WrapperClass, self:K2_GetActorLocation(), self:K2_GetActorRotation(), VectorHelper.ScaleOne()); if self.PickupWrapper.UGC_PickUpWrapperDestroyDelegate then self.PickupWrapper.UGC_PickUpWrapperDestroyDelegate:Add(self.DelaySpawnItem, self) UGCLogSystem.Log("[BP_SpawnPickupWrapper_SpawnItem] SpawnSucceed") else UGCLogSystem.Log("[BP_SpawnPickupWrapper_SpawnItem] UGC_PickUpWrapperDestroyDelegate is nil") end else UGCLogSystem.LogError("[BP_SpawnPickupWrapper_SpawnItem] WrapperClass is not Valid") end end function BP_SpawnPickupWrapper:DelaySpawnItem() if self.PickupWrapper.UGC_PickUpWrapperDestroyDelegate then self.PickupWrapper.UGC_PickUpWrapperDestroyDelegate:Remove(self.DelaySpawnItem, self) end UGCEventSystem.SetTimer(self, function() self:SpawnItem() end, self.DelayTime ) end return BP_SpawnPickupWrapper;