Unity之ToLua_lua文件打成AB包的加载
Tolua提供了一个使用单例模式的LuaFileUtils类,这个类用来读取lua文件,可以根据自己的项目继承这个类来重写ReadFile方法。
首先我们得把打包好的lua文件加载进来,方便查找lua文件。
Dictionary<string, AssetBundle> map = new Dictionary<string, AssetBundle>();public void AddAB(string fileName, AssetBundle ab){map.Add(fileName, ab);}
接下来就是读取AB包中的lua文件:
因为tolua提供了常用Unity中的vecter3,color等lua文件,我也觉得没有必要去把这一个个的文件集成在AB包中。使用lua菜单中的Copy Lua filse to Resources选项
那么接下来就是重写ReadFile方法:
public override byte[] ReadFile(string fileName){ byte[] buffer = null;//判断传递进来的fileName有没有“.lua”的后缀 没有就加上if (!fileName.EndsWith(".lua")){fileName += ".lua";}if (buffer == null)//加载Resources下面的lua文件{ string path = "Lua/" + fileName;TextAsset text = Resources.Load(path, typeof(TextAsset)) as TextAsset;if (text != null){buffer = text.bytes;Resources.UnloadAsset(text);}}if (buffer == null)//加载AB包中的lua文件{AssetBundle bundle = map[fileName];TextAsset luaCode = bundle.LoadAsset<TextAsset>(fileName);if (luaCode != null){buffer = luaCode.bytes;Resources.UnloadAsset(luaCode);}}return buffer;}
基本工作已准备好,那接下来就是怎样使用了:
void OnBundleLoad(){LuaLoader luaLoader = new LuaLoader();LuaState state = new LuaState();state.Start();//这句很关键 需要调用Unity中的类就要加上LuaBinder.Bind(state);foreach (var item in map.Keys){luaLoader.AddAB(item,map[item]);}state.DoFile("test.lua");state.Dispose();}
test.lua语句是设置场景中的文本组件的文本值为 “Lua文件加载成功!”。下面就是运行后的图片
测试工程 门钥匙:im1m
Unity之ToLua_lua文件打成AB包的加载相关推荐
- unity 场景ab包_Unity加载AB包
Unity制作游戏AB包 需要注意的是在游戏场景运行的情况下,不能编译AB包,不运行的情况下编译AB包需要使用Unity的扩展菜单功能,首先需要建立菜单用来编译AB包. 1.建立AB包的名字,首先选中 ...
- Unity AB包动态加载Spine动画
刚开始想使用把spine动画做成预设体加载出来,但是加载之后无法脚本控制spine的动画片段,整个spine会维持在做成预设体的设置. 后来改变想法把动画所需的AssetData和Material动态 ...
- android资源加载失败,Unity2017,打成安卓包之后加载资源失败
在game.unity的基础上简单改了一下,但是执行SceneLoader.Load("Scene/TestScene/TestScene.unity");的时候会看到加载失败的l ...
- 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令
手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...
- 将java文件打成jar包
新建一个配置文件mainfest.mf 设置内容Main-Class: Str2CamelCaseStr 把配置文件放到编译好的java文件 xxx.class同目录下面 到当前目录打开命令窗口 执行 ...
- 指定文件打成jra包
指定文件打成jra包 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>ma ...
- 怎么把class文件打成jar包
网上的例子不是太清楚,自己写一下过程并加几个图,免得今后又得看半天资料 1. 把两个.class文件打成jar包 (1)打开cmd (2)进入到准备打包的目录,找到要打包的文件,这里分别是 Examp ...
- R语言导入数据文件(数据导入、加载、读取)、使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File)
R语言导入数据文件(数据导入.加载.读取).使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File) 目录
- R语言导入数据文件(数据导入、加载、读取)、使用haven包的read_dta函数导入Stata中的dta格式文件
R语言导入数据文件(数据导入.加载.读取).使用haven包的read_dta函数导入Stata中的dta格式文件 目录
最新文章
- 命名分组(?name....)
- 【TypeScript】获取随机数,并随机生成年份,判断是否为闰年
- ip addr 相关操作
- Android学习四、Android中的Adapter
- mysql安装和配置(windowns||centos)
- HAProxy安装和配置大全
- [经验]修改SDI主窗口Title
- php define函数
- 范式通俗理解:1NF、2NF、3NF和BNCF
- 记录参加微软打造开发者社会生态圈线下会议
- Solr 特点,为什么要用solr服务,
- Mac PHP7.4安装
- Maven配置nexus私服地址
- 【《深度学习入门》—— 学习笔记(一)】
- 描写火车站场景_描写春运火车拥挤的作文_火车站上
- Multisim 数字计数器
- WPF中的TreeView选中指定节点
- 百度最强大脑在想什么? —— 36氪硅谷专访百度首席科学家 Andrew Ng
- ICN6202 4lane MIPI 转LVDS
- 单片机中利用SHT11实现温湿度实验