using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using XLua;
public class xLuaTest : MonoBehaviour {
// Use this for initialization
void Start () {
//1.通过Resources加载xluaTest文件
//TextAsset ta = Resources.Load("xLuaTest.lua");
//LuaEnv env = new LuaEnv(); //实例化lua环境虚拟机
执行文件中的文本
//env.DoString(ta.text);
//env.Dispose();
//2.通过require加载xLuaTes文件
//LuaEnv env = new LuaEnv();
//env.DoString("require 'xLuaTest'");
//env.Dispose();
//3.自定义Loader加载
//LuaEnv env = new LuaEnv();
//env.AddLoader(MyLoader);
//env.DoString("require 'xLuaTest'");
//env.Dispose();
//4.通过streamingAssets加载xLuaTest文件
LuaEnv env = new LuaEnv();
env.AddLoader(MyLoader);
env.DoString("require 'xLuaTest02'");
}
public byte[] MyLoader(ref string filepath)
{
//streamingAsset下的lua文件路径
string path = Application.streamingAssetsPath + "/" + filepath + ".lua.txt";
//lua中代码文本转换字节数组
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(path));
}
///
/// 3.自定义Loader加载
///
/// 文件路径
/// 加载器加载
//public byte[] MyLoader(ref string filepath)
//{
// string str = "print('hello zhengke')";
// return System.Text.Encoding.UTF8.GetBytes(str);
//}
// Update is called once per frame
void Update () {
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using XLua;
using System;
public class xLuaTest2 : MonoBehaviour {
// Use this for initialization
void Start () {
LuaEnv env = new LuaEnv();
env.AddLoader(MyLoader);
env.DoString("require 'xLuaTest02'");
访问lua中的全局变量
//int playerLv = env.Global.Get("lv");
//string playerName = env.Global.Get("playerName");
//bool isDie = env.Global.Get("isDie");
//Debug.Log(playerLv + "=====" + playerName + "=========" + isDie);
//env.Dispose();
1.映射到类 获取全局table表
//Person LLWH = env.Global.Get("Person");
//Debug.Log(LLWH.name + " " + LLWH.age + " " + LLWH.isSingle);
//env.Dispose();
2.映射到interface
//IPerson LLWH = env.Global.Get("Person");
//Debug.Log(LLWH.name + " " + LLWH.age + " " + LLWH.isSingle);
//env.Dispose();
3.映射到字典中
//Dictionary dict = env.Global.Get>("Person");
//foreach (string key in dict.Keys)
//{
// Debug.Log(key+"+======>"+dict[key]);
//}
//env.Dispose();
4.映射到list种
//List