• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【第二篇】xLua中lua加载方式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 xLua中lua文件加载方式

1. 直接执行字符串方式

1 LuaEnv luaenv = new LuaEnv();
2 luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
3 luaenv.Dispose();

2. 通过require加载lua文件方式,require加载的文件路径包括Resources和内置的一些路径。在Resources下存放一个HelloWorld.lua.txt文件

1 LuaEnv luaenv = new LuaEnv();
2 luaenv.DoString("require 'HelloWorld'");
3 luaenv.Dispose();

3. 自定义loader加载 

 

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using System.IO;
 4 using System.Net;
 5 using UnityEngine;
 6 using XLua;
 7 
 8 public class MyLuaTest : MonoBehaviour
 9 {
10     private LuaEnv _luaEnv = null;
11     // Start is called before the first frame update
12     void Start()
13     {
14         _luaEnv = new LuaEnv();
15         _luaEnv.AddLoader(CustomMyLoader);
16         _luaEnv.DoString("require 'CustomDIRLuaFile'");
17     }
18 
19     private static byte[] CustomMyLoader(ref string fileName)
20     {
21         byte[] byArrayReturn = null;
22         
23         // 定义lua路径
24         string luaPath = Application.dataPath + "/Scripts/LuaScripts/" + fileName + ".lua";
25         // 读取lua路径中指定lua文件内容
26         string strLuaContent = File.ReadAllText(luaPath);
27         // 数据类型转换
28         byArrayReturn = System.Text.Encoding.UTF8.GetBytes(strLuaContent);
29     
30         return byArrayReturn;
31     }
32     
33     void OnDestroy()
34     {
35         _luaEnv.Dispose();
36     }
37 }

注释:

  通过AddLoader可以注册回调,该回调参数是字符串,lua代码里调用require是,参数将会自动传给回调,回调中就可以根据这个参数去加载指定文件

 

不同加载方式分析:

  1. 直接使用DoString方式加载字符串,开发调试时可以使用
  2. 使用require方式加载,lua文件后缀需为txt,文件必须放在Resources目录下,否则无法加载到文件
  3. 自定义loader则可以把lua文件放在任意合法文件夹下,且文件后缀不用增加txt标识

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
cocos2d-lua整合到ios工程,即在ios原生应用中可以直接玩cocoslua开发的游戏 ...发布时间:2022-07-22
下一篇:
Lua5.1中的API函数发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap