Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
xuyanghuang-tencent committed Oct 20, 2021
2 parents 47857f2 + 35ece3b commit 04f08df
Show file tree
Hide file tree
Showing 21 changed files with 299 additions and 204 deletions.
6 changes: 0 additions & 6 deletions Content/Script/BP_Game_C.lua
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ function BP_Game_C:ReceiveBeginPlay()
self.SpawnLocation = UE4.FVector()
self.AICharacterClass = UE4.UClass.Load("/Game/Core/Blueprints/AI/BP_AICharacter.BP_AICharacter_C")
UE4.UKismetSystemLibrary.K2_SetTimerDelegate({self, BP_Game_C.SpawnEnemy}, self.EnemySpawnInterval, true)
UE4.UKismetSystemLibrary.K2_SetTimerDelegate({self, BP_Game_C.MainTick}, 1.0, true)
end

function BP_Game_C:SpawnEnemy()
Expand All @@ -31,11 +30,6 @@ function BP_Game_C:SpawnEnemy()
end
end


function BP_Game_C:MainTick()
_G.HotFix(true)
end

function BP_Game_C:NotifyEnemyDied()
self.AliveEnemies = self.AliveEnemies - 1
if self.AliveEnemies < 0 then
Expand Down
2 changes: 1 addition & 1 deletion Content/Script/Player/BP_PlayerCharacter_C.lua
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ end
function BP_PlayerCharacter_C:FallCheck()
local Location = self:K2_GetActorLocation()
if Location.Z < -200.0 then
UE4.UKismetSystemLibrary.ExecuteConsoleCommand(self, "RestartLevel")
UE4.UKismetSystemLibrary.ExecuteConsoleCommand(self, "RestartLevel")
end
end

Expand Down
71 changes: 0 additions & 71 deletions Content/Script/Player/PlayerCharacter.lua

This file was deleted.

55 changes: 55 additions & 0 deletions Content/Script/Tutorials/11_ReleaseUMG.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
--[[
说明:
UMG对象的释放流程:
1、调用self:Release(),解除LuaTable在C++侧的引用
2、确保LuaTable在Lua侧没有其他引用,触发LuaGC
3、C++侧收到UObject_Delete回调,解除UMG在C++侧的引用
4、确保UMG在C++侧没有其他引用,触发UEGC
小提示:
使用控制台命令查看对象和类的引用情况:
查看指定类的引用列表:Obj List Class=ReleaseUMG_Root_C
查看指定对象的引用链:Obj Refs Name=ReleaseUMG_Root_C_0
]] --

require "UnLua"

local Screen = require "Tutorials.Screen"

local M = Class()

local function print_intro()
local msg =
[[
使用以下按键进行一次强制垃圾回收:
C:强制 C++ GC
L:强制 Lua GC
—— 本示例来自 "Content/Script/Tutorials.11_ReleaseUMG.lua"
]]
Screen.Print(msg)
end

function M:ReceiveBeginPlay()
local widget_class = UE4.UClass.Load("/Game/Tutorials/11_ReleaseUMG/ReleaseUMG_Root.ReleaseUMG_Root_C")
local widget_root = NewObject(widget_class, self)
widget_root:AddToViewport()

print_intro()
end

function M:L_Pressed()
collectgarbage("collect")
Screen.Print('collectgarbage("collect")')
end

function M:C_Pressed()
UE4.UKismetSystemLibrary.CollectGarbage()
Screen.Print("UKismetSystemLibrary.CollectGarbage()")
end

return M
24 changes: 24 additions & 0 deletions Content/Script/Tutorials/ReleaseUMG_ItemChild.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
require "UnLua"

local M = Class()

function M:Construct()
print("ItemChild Construct")
self.Button_Remove.OnClicked:Add(self, self.OnRemove)
end

function M:Setup(parent)
self.parent = parent
end

function M:OnRemove()
print("ItemChild Remove")
self.parent:Remove()
end

function M:Destruct()
print("ItemChild Destruct")
self:Release()
end

return M
19 changes: 19 additions & 0 deletions Content/Script/Tutorials/ReleaseUMG_ItemParent.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
require "UnLua"

local M = Class()

function M:Construct()
print("ItemParent Construct", self:GetName())
self.ItemChild:Setup(self)
end

function M:Remove()
self:RemoveFromViewport()
end

function M:Destruct()
print("ItemParent Destruct")
self:Release()
end

return M
27 changes: 27 additions & 0 deletions Content/Script/Tutorials/ReleaseUMG_Root.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
require "UnLua"

local M = Class()

function M:Construct()
print("Root Construct")
self.Button_AddNew.OnClicked:Add(self, self.OnAddNew)
self.Button_ReleaseAll.OnClicked:Add(self, self.OnReleaseAll)
end

function M:OnAddNew()
print("Root Add New")
local widget_class = UE4.UClass.Load("/Game/Tutorials/11_ReleaseUMG/ReleaseUMG_ItemParent.ReleaseUMG_ItemParent_C")
local widget = NewObject(widget_class, self)
self.VerticalBox_Panel:AddChildToVerticalBox(widget)
end

function M:OnReleaseAll()
self:RemoveFromViewport()
end

function M:Destruct()
print("Root Destruct")
self:Release()
end

return M
Binary file added Content/Tutorials/11_ReleaseUMG/ReleaseUMG.umap
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit 04f08df

Please sign in to comment.