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包的加载相关推荐

  1. unity 场景ab包_Unity加载AB包

    Unity制作游戏AB包 需要注意的是在游戏场景运行的情况下,不能编译AB包,不运行的情况下编译AB包需要使用Unity的扩展菜单功能,首先需要建立菜单用来编译AB包. 1.建立AB包的名字,首先选中 ...

  2. Unity AB包动态加载Spine动画

    刚开始想使用把spine动画做成预设体加载出来,但是加载之后无法脚本控制spine的动画片段,整个spine会维持在做成预设体的设置. 后来改变想法把动画所需的AssetData和Material动态 ...

  3. android资源加载失败,Unity2017,打成安卓包之后加载资源失败

    在game.unity的基础上简单改了一下,但是执行SceneLoader.Load("Scene/TestScene/TestScene.unity");的时候会看到加载失败的l ...

  4. 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令

    手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...

  5. 将java文件打成jar包

    新建一个配置文件mainfest.mf 设置内容Main-Class: Str2CamelCaseStr 把配置文件放到编译好的java文件 xxx.class同目录下面 到当前目录打开命令窗口 执行 ...

  6. 指定文件打成jra包

    指定文件打成jra包 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>ma ...

  7. 怎么把class文件打成jar包

    网上的例子不是太清楚,自己写一下过程并加几个图,免得今后又得看半天资料 1. 把两个.class文件打成jar包 (1)打开cmd (2)进入到准备打包的目录,找到要打包的文件,这里分别是 Examp ...

  8. R语言导入数据文件(数据导入、加载、读取)、使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File)

    R语言导入数据文件(数据导入.加载.读取).使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File) 目录

  9. R语言导入数据文件(数据导入、加载、读取)、使用haven包的read_dta函数导入Stata中的dta格式文件

    R语言导入数据文件(数据导入.加载.读取).使用haven包的read_dta函数导入Stata中的dta格式文件 目录

最新文章

  1. 命名分组(?name....)
  2. 【TypeScript】获取随机数,并随机生成年份,判断是否为闰年
  3. ip addr 相关操作
  4. Android学习四、Android中的Adapter
  5. mysql安装和配置(windowns||centos)
  6. HAProxy安装和配置大全
  7. [经验]修改SDI主窗口Title
  8. php define函数
  9. 范式通俗理解:1NF、2NF、3NF和BNCF
  10. 记录参加微软打造开发者社会生态圈线下会议
  11. Solr 特点,为什么要用solr服务,
  12. Mac PHP7.4安装
  13. Maven配置nexus私服地址
  14. 【《深度学习入门》—— 学习笔记(一)】
  15. 描写火车站场景_描写春运火车拥挤的作文_火车站上
  16. Multisim 数字计数器
  17. WPF中的TreeView选中指定节点
  18. 百度最强大脑在想什么? —— 36氪硅谷专访百度首席科学家 Andrew Ng
  19. ICN6202 4lane MIPI 转LVDS
  20. 单片机中利用SHT11实现温湿度实验

热门文章

  1. 生成器-send方法
  2. 使CPU利用率跑高的脚本致使服务器死机
  3. Linux 脚本部署应用宝,腾讯合作伙伴大会开幕在即 应用宝或再升级部署内容分发...
  4. Centos7 文件查找配置项(FZF命令)
  5. 如何聪明地防止电源正负极接反?
  6. 浅谈Kube-OVN
  7. 宿舍管理系统需求说明书
  8. 内幕!深入分析NSA入侵事件
  9. 支付宝,微信支付何时进军美国?
  10. 什么是曾维沛云推广?带广西企业完成前瞻性战略网络营销推广布局