local Material_Utility = {} local private = {} local CIRCLE_HP_MATERIAL_PATH = ConstAssetPathConfig.CIRCLE_HP_MATERIAL_PATH function Material_Utility.OnStartup() private.circleHpMaterial = nil private.hpMaterialCount = 0 private.hpMaterialPool = {1, 2, 3, 4} end function Material_Utility.OnShutdown() if not private.circleHpMaterial then return end for _, v in pairs(private.hpMaterialPool) do UnityEngine.Object.Destroy(v) end TK2API.ReturnAsset(CIRCLE_HP_MATERIAL_PATH, private.circleHpMaterial) end function Material_Utility.InitCircleHpMaterialPool() --防止调用多遍 if private.circleHpMaterial then return end private.circleHpMaterial = TK2API.GetAsset(CIRCLE_HP_MATERIAL_PATH) for i = 1, 4 do private.hpMaterialPool[i] = TK2API.InstantiateObject(private.circleHpMaterial) end private.hpMaterialCount = 4 end function Material_Utility.GetCircleHpMaterial() if private.hpMaterialCount > 0 then private.hpMaterialCount = private.hpMaterialCount - 1 return private.hpMaterialPool[private.hpMaterialCount+1] else local circleHpMaterial = TK2API.InstantiateObject(private.circleHpMaterial) table.insert(private.hpMaterialPool, circleHpMaterial) return circleHpMaterial end end function Material_Utility.ResetHpMaterialPoolCount() private.hpMaterialCount = #private.hpMaterialPool end return Material_Utility