Unity3d中XLua简单运⽤
前段时间学习了XLua的教程,发现⾮常的好⽤,下⾯⽤⼀个简单的例⼦来使⽤⼀下Xlua,将⼀个加法运算的程序 热更新成减法运算⾸先,我们写⼀个简单的加法运算
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
using XLua;
public class XluaText : MonoBehaviour {
public Text EditionText;//显⽰版本
public Text Operator;//运算符
public Text Anser;//结果
public InputField input1;//第⼀个数据
public InputField input2;//第⼆个数据
private void Start()
{
Init();
}
public void Init()
{
Debug.LogError("第⼀个版本初始化");
}
public void Add()
{
int num = int.) + int.);
< = "= " + num.ToString();
}
}
然后在Unity编辑器中给相应的UI赋值,将脚本绑定在Canvas画布上,并将画布名改名为GamePanel,效果如下图:
运⾏后也很简单:
好了 ,我们现在开始进⾏热更的步骤 :
⼀⼂先在Scripting Dfeine Symbols中加⼊HOTFIX_ENABLE标签
选择Edit->Project Setting->Player  右边Inspector列表中
加⼊HOTFIX_ENABLE标签
⼆⼂在要修改的类前加上[Hotfix]
[Hotfix]
public class XluaText : MonoBehaviour
三⼂开始编写Lua脚本
xlua.hotfix(CS.XluaText,'Init',function(self)
= '版本2'
= '-'
end)
xlua.hotfix(CS.XluaText,'Add',function(self)
local num = tonumber() - tonumber()
= "= "..tostring(num);
end)
hofix函数的3个参数分别为:需要修改的类,修改的函数名,函数类。
该lua脚本实现的功能是修改Init函数,把EditionText修改成“版本2”,把Operator的Text修改成“-”号再修改Add脚本 将加法运算修改成减法运算。
保存该lua脚本名为XluaText1.lua。
四⼂编写调⽤Lua脚本的类
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using XLua;
public class HotFixText : MonoBehaviour
{
LuaEnv m_kLuaEnv;
public GameObject gamepanel;
public GameObject Downpanel;
void Start ()
{
//代码热更步骤
m_kLuaEnv = new LuaEnv(); //该变量最好保证全局就此⼀个
//查指定路径下lua热更⽂件
string path = Application.persistentDataPath + "/";
/
/⽤协程序下载读取⽂件内容
StartCoroutine(DownloadFile(path));
}
public IEnumerator DownloadFile(string path)
{
WWW www = new WWW(path);
yield return www;
if (www.isDone)
{
System.IO.StreamReader sr = new System.IO.StreamReader(path, Encoding.UTF8);
if (sr != null)
{
//执⾏该Lua脚本中的语句
m_kLuaEnv.DoString(sr.ReadToEnd());
}
}
gamepanel.SetActive(true);
Downpanel.SetActive(false);
}
}
如果读取路径下有XluaText1.lua⽂件时 则执⾏lua脚本中的内容,没有则正常运⾏。
这⾥将2个gameobject的进⾏了激活和⾮激活设置,是简单为了体现出更新的效果。如图所⽰:
GamePanel就是之前做好的计算加法的画布,先设置为false,新添加的DownPanel画布就是⼀个背景和⼀个Text⽽已将HotFixText 脚本绑定在摄像机上并将2个gameobject赋值
注:要先将该脚本的Enable设置成False,当执⾏完下载⽂件的脚本后⽤动态激活
unity 教程五⼂编写从⽹络上下载⽂件的类,已达到热更的效果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。