luoxixuan / luareload-unity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用

打开 Examples 里面的 UI scene,然后修改 Resources 目录下的 ButtonInteraction.lua.txt 中的 两个click函数

函数开始的执行代码

local hardreload = require 'hardreload'
require = hardreload.require

某个文件,假设为 updatefileName.lua,发生变化的时候执行

local hardreload = require 'hardreload' 
hardreload.reload(updatefileName);

unity 结合 类AssetPostprocessor进行使用

特点

没有啥代码格式限制,基本上的只要你调用一个 reload函数输入参数文件名即可

说明

ui = {}

-- 修改a、b两个变量无法 热重载,无法添加 local变量
local a = 12345
local b = {test = 2}

local function button2Click()
	-- 你可以随便修改添加这个函数的局部变量以及逻辑
	local c = "foo c"
	local d = "foo d"
	print("button233 click:" .."c:".. tostring(c)  .." a:".. tostring(a))
	print("d:" .. d)
end

local function button1Click()
	-- 你可以随便修改添加这个函数的局部变量以及逻辑
	print("button1 click:" .. tostring(a))
end

function ui:start()
	print("lua start...")
	self.button1:GetComponent("Button").onClick:AddListener(function()
		-- 你可以随便修改添加这个函数的局部变量以及逻辑
		print("callback click:" .. "a:" ..tostring(a) .."b.test:" ..tostring(b.test))
		button1Click()
	end)

	self.button2:GetComponent("Button").onClick:AddListener(button2Click)
end

已知问题

  • 直接修改函数外部的local变量无法热重载,如果修改一个外部的local函数内容可以热重载
  • 删掉一个local 函数,然后再次添加回去 函数之后无法热重载,建议多多使用self函数

联系方式

如果您发现啥BUG可以加入QQ群:882425563 与我们联系

使用框架地址

https://github.com/cloudwu/luareload/tree/proto

About

License:Other


Languages

Language:C 64.9%Language:HTML 15.1%Language:Lua 9.1%Language:C# 6.7%Language:CMake 1.5%Language:C++ 1.0%Language:Makefile 0.8%Language:Batchfile 0.5%Language:Roff 0.2%Language:CSS 0.2%Language:Shell 0.1%