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


 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標識


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM