Lua访问C#
C#脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System.IO;
using System.Text;
public class Test : 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 Player
{
public string theName = "张三";
public int theAge = 26;
public void Method()
{
Debug.Log("你好");
Debug.Log(theName);
Debug.Log(theAge);
}
public static Player Create(string name,int age)
{
Player player = new Player();
player.theName = name;
player.theAge = age;
return player;
}
}
Lua访问
player = CS.Player()
print(player.theName)
print(player.theAge)
player.theName = "王五"
player.theAge = 27
print(player.theName)
print(player.theAge)
player:Method()
player = CS.Player.Create("赵六",23)
player:Method()
Lua访问Unity自带脚本
创建GameObject
obj = CS.UnityEngine.GameObject()
obj.name = "NewGameObject"
查找物体并重命名
obj = CS.UnityEngine.GameObject.Find("GameObject")
obj.name = "NewGameObject"
获取组件并设置
obj = CS.UnityEngine.GameObject.Find("Text")
tex = obj:GetComponent("UnityEngine.UI.Text")
tex.text = "AAA"