
AssetBundle





AssetBundles-Browser-master
关于AB包打包和加载 ,高版本的将使用最新的Addressables进行
这里使用AssetBundles-Browser-master








使用协程



在包中的资源如果使用了另一个资源,打包会默认打包到同一个AB包
如果在AB中使用了另一个AB包中的资源,会出现丢失。需要把依赖包都加载才能正常允许。

可以通过主包获取依赖信息








泛型加载






泛型


判断是否



打印
print(“”)


注释








type()可以获取变量类型























LUA中没有switch


















多返回值时,在前面申明多个变量来接取即可












闭包:改变参数的生命周期



Lua中索引从1开始


































访问类中成员变量


LUA提供了语法糖方便访问成员变量
用冒号:默认把调用者作为第一个参数传入函数

在函数声明的时候可以使用冒号,意思是函数会有一个默认的参数
LUA有一个默认值self,表示默认传入的第一个参数


这两句的效果是一样的











加了local就是局部变量(本地变量)













可以在脚本中return














































一层一层往上套























装父类的base

调用父类方法

这样调用base时用的是同一个父类


手动调用self,这样base就不会是同一个


--面向对象实现
--万物之父 所有对象的基类 Object
--封装
Object = {}
--实例化方法
function Object:new()
local obj = {}
--给空对象设置元表 以及 __index
self.__index = self
setmetatable(obj, self)
return obj
end
--继承
function Object:subClass(className)
--根据名字生成一张表 就是一个类
_G[className] = {}
local obj = _G[className]
--设置自己的“父类”
obj.base = self
--给子类设置元表 以及 __index
self.__index = self
setmetatable(obj, self)
end
--申明一个新的类
Object:subClass("GameObject")
--成员变量
GameObject.posX = 0
GameObject.posY = 0
--成员方法
function GameObject:Move()
self.posX = self.posX + 1
self.posY = self.posY + 1
end
--实例化对象使用
local obj = GameObject:new()
print(obj.posX)
obj:Move()
print(obj.posX)
local obj2 = GameObject:new()
print(obj2.posX)
obj2:Move()
print(obj2.posX)
--申明一个新的类 Player 继承 GameObject
GameObject:subClass("Player")
--多态 重写了 GameObject的Move方法
function Player:Move()
--base调用父类方法 用.自己传第一个参数
self.base.Move(self)
end
print("****")
--实例化Player对象
local p1 = Player:new()
print(p1.posX)
p1:Move()
print(p1.posX)
local p2 = Player:new()
print(p2.posX)
p2:Move()
print(p2.posX)








