今天我们来说说在Unity如何去和Lua连起来用
我们来把Lua的插件导进来在xLua-master\Assets里面的两个文件导进去就可以开始我们下面的步骤了。
记得把文件放在Resources文件架底下并且给改成这样的格式.lua.txt
然后我们来写代码先引入命名空间很重要
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
public class SignIn : MonoBehaviour
{
void Start()
{
LuaEnv lua = new LuaEnv();
lua.DoString("require('SignIn')");//加载Lua文件
lua.Dispose();//释放资源
}
}
再在我们刚刚创建的lua文件写入
--调用C#
a=CS.UnityEngine
--创建空对象
a.GameObject("Lua");
这样我们就能获取一个空物体
从上面可以看出来和我们平时写Unity代码没什么区别,所以我们来看看今天的练习登入注册
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
[CSharpCallLua]
public delegate void Signin();
public class SignIn : MonoBehaviour
{
public string name = "汪永生";
public string password = "123";
public string text = "你确定吗?";
public string text1 = "正确的";
//public GameObject signin
void Start()
{
LuaEnv lua = new LuaEnv();
lua.DoString("require('SignIn')");//加载Lua文件
Signin signin = lua.Global.Get<Signin>("Signin");
signin();
//lua.Dispose();//释放资源
}
void Update()
{
}
}
--调用C#
si=CS.UnityEngine
--获取按钮和输入框组件
function Signin()
btn=si.GameObject.Find('SignInButton'):GetComponent(typeof(si.UI.Button))
btn1=si.GameObject.Find('LoginButton1'):GetComponent(typeof(si.UI.Button))
atn1=si.GameObject.Find('SignInButton1'):GetComponent(typeof(si.UI.Button))
atn=si.GameObject.Find('LoginButton'):GetComponent(typeof(si.UI.Button))
signin=si.GameObject.Find('SignIn')
login=si.GameObject.Find('Login')
username=si.GameObject.Find('SignInInputField'):GetComponent(typeof(si.UI.InputField))
userpassword=si.GameObject.Find('SignInInputField1'):GetComponent(typeof(si.UI.InputField))
username1=si.GameObject.Find('LoginInputField'):GetComponent(typeof(si.UI.InputField))
userpassword1=si.GameObject.Find('LoginInputField1'):GetComponent(typeof(si.UI.InputField))
userpassword2=si.GameObject.Find('LoginInputField2'):GetComponent(typeof(si.UI.InputField))
info=si.GameObject.Find('SignInText'):GetComponent(typeof(si.UI.Text))
info1=si.GameObject.Find('LoginText'):GetComponent(typeof(si.UI.Text))
login:SetActive(false)
btn.onClick:AddListener(SIgnin)
btn1.onClick:AddListener(Login1)
atn.onClick:AddListener(Login)
atn1.onClick:AddListener(SIgnin1)
end
lua=CS.SignIn()
function SIgnin()
name=lua.name
password=lua.password
if username.text~='' and userpassword.text~='' then
if username.text==name and userpassword.text==password then
info.text=lua.text1
signin:SetActive(false)
login:SetActive(true)
else
info.text=lua.text
end
else
info.text=lua.text..'1'
end
end
function Login()
if (username1.text~='' and userpassword1.text~='' and userpassword2.text~='') then
if userpassword1.text==userpassword1.text and username1.text~=name then
lua.name=username1.text
lua.password=userpassword1.text
info1.text=lua.text1
signin:SetActive(true)
login:SetActive(false)
else
info1.text=lua.text
end
else
info1.text=lua.text..'1'
end
end
function Login1()
signin:SetActive(false)
login:SetActive(true)
info1.text=''
info.text=''
end
function SIgnin1()
signin:SetActive(true)
login:SetActive(false)
info.text=''
info1.text=''
end