今天的内容是用Lua调用Unity完成登入注册,这里只是完成了一个很简单的功能哦
注意哦,这里间的Lua文件放在同一个过程的同一个文件夹下
这里用到了一个Lua模块
a=CS.UnityEngine--Lua调用C#需要这个前缀
One={}
function One.Init()
b=123
btn1=a.GameObject.Find("zc"):GetComponent(typeof(a.UI.Button))
btn2=a.GameObject.Find("dr"):GetComponent(typeof(a.UI.Button))
UserId=a.GameObject.Find("zh"):GetComponent(typeof(a.UI.InputField))
UserPwd=a.GameObject.Find("mm"):GetComponent(typeof(a.UI.InputField))
Tsk=a.GameObject.Find("tsk"):GetComponent(typeof(a.UI.Text))
btn1.onClick:AddListener(ZC)
btn2.onClick:AddListener(DR)
end
function ZC()
file=io.open("D:\\unity3D\\Unity\\Lua\\Users.txt","a+")
io.output(file)
io.write(UserId.text.."\n"..UserPwd.text.."\n")
io.close()
Tsk.text="注册成功"
end
function DR()
for i in io.lines("D:\\unity3D\\Unity\\Lua\\Users.txt") do
if i== UserId.text then
if i== UserPwd.text then
Tsk.text="登入成功"
end
else
Tsk.text="账号或密码错误"
end
end
end
这里做了一个把账号密码存进文件的操作
接下来需要再建一个Lua文件来调用这个模块,这里就非常简单了
因为我偷懒登入注册在同一个ui界面所以只有一个方法
C#去调用Lua,记得引入命名空间
using XLua;
using System.IO;
public class ZY_3_30 : MonoBehaviour
{
LuaEnv lua;
void Start()
{
lua = new LuaEnv();
lua.AddLoader(Loads);
lua.DoString("require('a')");
}
byte[] Loads(ref string fileName)
{
string path = Application.dataPath + "/Lua/" + fileName + ".lua";
return File.ReadAllBytes(path);
}
private void OnDestroy()
{
lua.Dispose();
}