热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javalua热更新_XLua_热更新学习四,使用lua脚本热更新

上一篇搭建好了lua虚拟环境(点击查看),本篇利用搭建好的虚拟环境尝试着进行XLua热更新1.先创建项目,写好业务代码(例子)1.1创建Button&#

上一篇搭建好了lua虚拟环境(点击查看),本篇利用搭建好的虚拟环境尝试着进行XLua热更新

1.先创建项目,写好业务代码(例子)

1.1创建Button,和脚本NewBehaviourScript(挂在Button上)

1.2代码如下

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

using XLua;

[Hotfix] //[Hotfix]一定要有

public class NewBehaviourScript : MonoBehaviour {

public GameObject hong;

public GameObject Canvass;

void Start () {

transform.GetComponent().onClick.AddListener(OnButtonClick);

}

[LuaCallCSharp]//[LuaCallCSharp] lua调用C#

public void OnButtonClick()

{

GameObject ga = Instantiate(hong, transform.position + new Vector3(0, -100f, 0), transform.rotation);

ga.transform.SetParent(Canvass.transform);

}

}

2.打开上篇创建的lua脚本fish.lua.txt 编写补丁代码

print('更改预设物生成位置')

--C#命名空间

local UnityEngine = CS.UnityEngine

--补丁 参数1:需要更改的C#类名。参数2:需要更改的方法名。参数3:lua方法(更改的内容)

xlua.hotfix(CS.NewBehaviourScript,'OnButtonClick',function(self)

local go = UnityEngine.GameObject.Instantiate(self.hong,UnityEngine.transform.Position+UnityEngine.Vector3(100,100,0),self.transform.rotation)

go.transform.SetParent(go.transform,self.Canvass.transform)

end)

3.打开Unity进行以下操作

5880f7aa5719

4.运行测试

5880f7aa5719

热更前的生成位置

5880f7aa5719

热更后的生成位置



推荐阅读
author-avatar
000000
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有