版权声明:转载请保留该链接 https://blog.csdn.net/u013826918/article/details/86482494
ObjManager.lua
require "Obj"
ObjManager = {}
function ObjManager.SpawnObj(id)
-- 创建并初始化Obj
local obj = ObjectPool.Spawn(id)
obj.Init()
end
function ObjManager.DespawnObj(go)
-- body
end
...
Obj.lua
local ObjManager = require "ObjManager"
Obj = {}
function Obj.Init()
-- 进行必要的初始化设置
end
function Obj.Update()
-- 销毁的判断
if condition then
Obj.DestroySelf()
end
end
function Obj.DestroySelf()
ObjManager.DespawnObj(self)
end
...
会出现循环require的错误
改为以下形式
ObjManager.lua
...
function ObjManager.SpawnObj(id)
-- 创建并初始化Obj
local obj = ObjectPool.Spawn(id)
-- 在这里创建Obje的自毁函数
function obj.DestroySelf()
ObjManager.Despawn(obj)
end
obj.Init()
end
...
Obj.lua
-- 删除这个函数,改为 ObjManager.lua 中创建
-- function Obj.DestroySelf()
-- ObjManager.DespawnObj(self)
-- end
...