xlua学习2 用lua对unity中的UI热更新

  • Post author:
  • Post category:其他




介绍

我们在这一篇学习简单的使用lua对UI进行热更新。



过程

首先创建一个最普通的按钮,然后把上一篇写的交互脚本拖上去,用来读取lua文件中的awake,start,update,onDestroy方法,当然这些方法你可以自己定义。我们主要关心的就是unity中的几个生命周期回调。

在这里插入图片描述

然后我们需要编写一个自己的lua脚本对ui进行控制。

写好之后把它命名为xluaUITest.lua.txt拖给交互脚本。

local testButton;--测试按钮
--唤醒
function awake()
	print("awake");
	testButton=self:GetComponent(typeof(CS.UnityEngine.UI.Button));--获取按钮,lua没有泛型,所以传个type进来
end
--开始
function start()
	print("start");
	testButton.onClick:AddListener(onButtonClick);--监听点击事件
end
--更新
function update()

end
--销毁
function onDestroy()
	print("destroy");
end
--点击方法
function onButtonClick()
	print(testButton.name.."333".."被点击");
end

测试一下,有效

在这里插入图片描述

假设我们此时想要对按钮进行更新,修改了点击方法中print的内容,删掉”333″

在这里插入图片描述

这样我们只要修改lua文件中的代码,把新的lua文件传到服务器,再从服务器下载最新的lua代码,就可以对UI进行热更新了。



注意事项

写完lua代码并且改为txt放入unity之后,你可能会发现在编辑器里看不到内容,并且代码也不生效。这是因为txt中的编码不是uft-8。

在这里插入图片描述

打开IDE,找到Open User Options File,输入两行代码,就可以修改设置IDE中的编码为utf-8了
在这里插入图片描述

code.page=65001;
output.code.page=65001;

另附IDE下载地址:

https://github.com/rjpcomputing/luaforwindows/releases


如果无法安装则需要下载一个运行库vcredist_x86.exe

地址:

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luaforwindows/vcredist_x86.4053.exe



版权声明:本文为qq_29799917原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。