1.创建一个lua文件。
① 如果lua文件是 .txt 类型 ,文件可直接拖进unity中。
②如果lua文件是 .lua 类型,由于unity不认识该类型,可以在该文件后继续加入 .txt。
2.创建一个类添加到场景中。
using UnityEngine;
using XLua;
[LuaCallCSharp]
public class LuaCSharp
{
//创建一个LuaEnv 对象
LuaEnv env = new LuaEnv();
//获取到上面创建的lua文件, 然后拖进来
public TextAssets luaTxt;
//创建三个 LuaFunction类型的对象。用来接收luaTxt中的函数
LuaFunction awakeFunc;
LuaFunction startFunc;
LuaFunction updateFunc;
//用来测试该字段在lua中能否输出。
//注意:如果想被Lua文件访问,必须是public类型。
public int Hp = 100;
public int Mp = 50;
public int Lv = 0;
private void Awake()
{
//解析文件
env.DoString(luaTxt);
// 设置self 和 自己类关联起来,这样在lua文件中就可以用
// self表示这个类
env.Global.Set("self",this);
//解析文件中的 awake start update 函数
//注意: 括号中的参数一定要和lua文件中的函数相同。
awakeFunc = env.Global.Get<LuaFunction>("awake");
startFunc = env.Global.Get<LuaFunction>("start");
updateFunc = env.Global.Get<LuaFuncion>("update");
//调用 awake函数
awakeFunc.Call();
{
private void Start()
{
//调用 start函数
startFunc.Call();
}
private void Update()
{
//调用update函数
updateFunc.Call();
}
}
3.运行场景,测试结果。
(顺便发一下 XLua插件)
链接:https://pan.baidu.com/s/11lZPTNdSifePOtFS47k9YA
提取码:sld9