Lua访问C#
C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System.IO;
using System.Text;
using UnityEngine.UI;
public class TestXLua : MonoBehaviour
{
LuaEnv lua;
void Start()
{
lua = new LuaEnv();
//加载Lua
lua.AddLoader(LoadLua);
lua.DoString("require 'TestLua'");
}
byte[] LoadLua(ref string file)
{
Debug.Log(file);
string slua = File.ReadAllText(Application.dataPath + "/Lua/" + file + ".lua");
byte[] bytes = new UTF8Encoding().GetBytes(slua);
return bytes;
}
void OnDestroy()
{
lua.Dispose();
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FatherClass
{
public string FCName = "父类";
public FatherClass()
{
Debug.Log("父类构造函数");
}
public void FCFunction()
{
Debug.Log("父类方法");
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChildClass : FatherClass
{
public string CCName = "子类";
public ChildClass()
{
Debug.Log("子类构造函数");
}
public void CCFunction()
{
Debug.Log("子类方法");
}
}
Lua
调用构造函数
child = CS.ChildClass
childObj = child()
调用方法
child = CS.ChildClass
childObj = child()
childObj:CCFunction()
child = CS.ChildClass
childObj = child()
childObj.CCFunction(childObj)
调用父类/子类的字段与方法
child = CS.ChildClass
childObj = child()
print(childObj.FCName)
childObj:FCFunction()
print(childObj.CCName)
childObj:CCFunction()