TOLUA
文章平均质量分 64
LuaFrameWorkUGUI框架热更新的使用。
Kerven_HKW
做一个牛人
展开
-
0.专栏首页
0.Unity3D热更新LuaFramework入门实战(0)--写在前面1.Unity3D热更新LuaFramework入门实战(1)——代码热更新2.Unity3D热更新LuaFramework入门实战(2)——资源热更新3.Unity3D热更新LuaFramework入门实战(3)——编写Lua逻辑4.Unity3D热更新LuaFramework入门实战(4)——Lua组件...原创 2020-04-24 17:46:08 · 1329 阅读 · 0 评论 -
ILRuntime_NewbieGuide—进阶
进阶篇其实要求你应该拥有一个云服务器才有意思,但你用本地电脑也是一样的道理,只是没有这么有趣了。笔者大一的时候,腾讯云搞活动,学生认证可以抢到1元的云主机,配置很低,但是平时练练手还是可以的,现在没有这个1元的云主机买了,然后我的这个东西等过了几个月我毕业了也就不给用了(悲伤)。你要是想买的话就上腾讯云或者阿里云等平台上面找找吧。回正题:先简述我将用到的东西(我的做法有些地方很傻逼),我用......原创 2019-01-08 10:06:00 · 1137 阅读 · 0 评论 -
ILRuntime_NewbieGuide—入门
注:这里不会讲ILRuntime的热更新原理,如果还不是很清楚原理,请先移步到官方文档:https://ourpalm.github.io/ILRuntime/public/v1/guide/index.html我主要是讲如何把ILRuntime_HotGame这样一个简易的框架像做lua热更新一样使用。 基于ILRuntime的热更新实现的可以直接使用的框架。下面一小段引用前辈的话:......原创 2019-01-08 10:01:00 · 1335 阅读 · 0 评论 -
ILRuntime_NewbieGuide—导读
Welcome to the ILRuntime_NewbieGuide wiki!入门篇:做个简单的案例https://www.cnblogs.com/kerven/p/10237280.html进阶篇:涉及到资源热更新和放到服务器上https://www.cnblogs.com/kerven/p/10237312.html...原创 2019-01-08 09:56:00 · 1071 阅读 · 0 评论 -
Lua使用元方法操作两个table元素进行加减乘
Lua使用元方法操作两个table元素进行加减乘原创 2022-06-28 20:23:15 · 1600 阅读 · 0 评论 -
我的Lua笔记(总结的坑)
6.lua 数组是从1开始,这也是许多习惯吃第0碗饭的童鞋,感到不自在,有一种情况还是比较苦恼,比如:t[0] = 1 t[1] = 2 print(#t) 长度为多少,动手试试答案:1LUA编程建议:1 引用管理1.1基本原则C/C++内管管理的一个基本原则是,"谁分配,谁释放"。虽然C#和Lua语言本身都是基于引用的自动垃圾回收,这一原则对于引用的管理、资源的申请和释放.........原创 2019-09-02 10:19:56 · 1673 阅读 · 0 评论 -
InjectFix实现原理
InjectFix实现bug修复主要靠这两部分:虚拟机负责新逻辑的解析执行;注入代码负责把调用重定向到虚拟机;下面我们结合最简单的例子介绍下这两部分。虚拟机关键部分用几行伪码就可以描述清楚:导读 pc指向的是函数的第一条指令; argumentBase指向的是第一个参数; while+switch一条条指令往下执行,具体指令的操作在case那; argumentBase指向的是求值栈该函数的栈帧,栈帧是这么安排的:先放参数(如果有的话),再放本地变量(如原创 2020-11-08 13:22:56 · 4938 阅读 · 2 评论 -
C#和lua相互调用的方法教程
C#和lua相互调用的方法教程https://www.jb51.net/article/127519.htm原创 2020-11-04 11:46:36 · 1369 阅读 · 0 评论 -
VSCode使用EmmyLua调试Lua代码
《Unity3D VSCode使用EmmyLua调试Lua代码》前提:电脑需要配置安装Java环境(javajdk, jre)。一、将会用到的工具 -(工具都会在文中提供):Unity客户端工程用到 :emmy_core.dll 【Github】https://github.com/EmmyLuaVSCode需要安装插件EmmyLua二、具体流程(1).在客户端工程入口处,在启动Lua虚拟机后(一般在main.lua中),使用下方两张截图中的代码,requi...原创 2020-10-24 10:37:05 · 20352 阅读 · 6 评论 -
Unity游戏热更新
链接:https://pan.baidu.com/s/1ggWP0OF第 1 章 : 热更新技术学习介绍课时1:101-热更新技术学习介绍 11:55什么是热更新?举例来说 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新打包,然后让玩家重新下载(浪费流量和时间,体验不...原创 2017-12-26 15:28:00 · 1383 阅读 · 0 评论 -
13.Unity调试Lua代码
Unity3D JetBrainsRider + EmmyLua(更新)调试Luahttps://www.jianshu.com/p/5a453a80b7e9原创 2020-06-20 23:24:07 · 1289 阅读 · 0 评论 -
C#中使用Lua,非LuaFramework
写在一个脚本中的基类及派生类示例:class Person { protected string Name; protected string Phone; public Person(string name,string phone) { this.Name = name; ...原创 2019-09-01 12:58:17 · 1097 阅读 · 0 评论 -
0.Unity3D热更新LuaFramework入门实战(0)--写在前面
一、前言项目工程地址:https://gitee.com/hankangwen/LuaFramework_UGUI_V2项目将持续更新。二、Lua与C的交互Lua可以作为程序库用来扩展应用的功能,也就是Lua可以作为扩展性语言的原因所在。同时,Lua程序中可以注册有其他语言实现的函数,这些函数可能由C语言或者其他语言实现,可以增加一些不容易由Lua实现的功能。在C和Lua之间通...原创 2019-11-05 20:59:40 · 1180 阅读 · 0 评论 -
1.Unity3D热更新LuaFramework入门实战(1)——代码热更新
LuaFramework是一套基于tolua的框架,可以实现热更新。1、安装框架框架下载:https://github.com/jarjin/LuaFramework_UGUI_V2。打开之后需要点击lua菜单里面的Generate All和LuaFramework菜单里Build XXX Resources,以生成一些必要的文件。框架结构请参见http://doc.ulua.org/ar...原创 2019-09-02 09:34:08 · 1247 阅读 · 1 评论 -
2.Unity3D热更新LuaFramework入门实战(2)——资源热更新
热更新涉及资源热更新和代码热更新(其实lua代码也是资源),那接下来看看如何动态加载一个模型,然后热更成其他素材。这一部分涉及资源打包、动态创建资源等内容。1、创建物体为了调试的方便,笔者先将框架配置为本地模式,待测试热更新时再改成更新模式。图:配置为本地模式先测试个简单的创建物体,新建一个名为go的物体,然后设置它的坐标为(1,1,1)。这段代码虽然不涉及资源加载,但能展示“...原创 2019-09-02 09:34:53 · 1152 阅读 · 1 评论 -
3.Unity3D热更新LuaFramework入门实战(3)——编写Lua逻辑
为实现代码热更新,在Unity3D中使用lua,然而为此也需付出不少代价。其一,使代码结构混乱(尽管可以优化),其二降低了运行速度,其三增加学习成本(还要多学一门语言)。为了热更新,所有的逻辑都要用lua编写,那么怎样用lua编写游戏逻辑呢?1、Lua的Update方法第一篇“代码热更新”演示了用lua打印HelloWorld的方法,第二篇“资源热更新”演示了加载坦克模型的方...原创 2019-09-02 09:35:46 · 1182 阅读 · 0 评论 -
4.Unity3D热更新LuaFramework入门实战(4)——Lua组件
基于组件的编程模式是Unity3D的核心思想之一,然而使用纯lua编程,基本就破坏了这一模式。那么有没有办法做一些封装,让Lua脚本也能挂载到游戏物体上,作为组件呢?1、设计思想在需要添加Lua组件的游戏物体上添加一个LuaComponent组件,LuaComponent引用一个lua表,这个lua表包含lua组件的各种属性以及Awake、Start等函数,由LuaComponent适时调...原创 2019-09-02 10:14:57 · 1162 阅读 · 1 评论 -
5.Unity3D热更新LuaFramework入门实战(5)——UI
界面系统在游戏中占据重要地位。游戏界面是否友好,很大程度上决定了玩家的体验;界面开发是否便利,也影响着游戏的开发进度。Unity3D 的UGUI系统,使用户可以“可视化地”开发界面,那么怎样用Lua去调用UGUI呢?1、显示UI界面下面演示如何显示一个UI界面。由于UI界面也是一种资源,使用第二篇“资源热更新”的方法即可。这个例子中,制作一个含有按钮的界面,然后组成名为Pane...原创 2019-09-02 10:15:10 · 1129 阅读 · 0 评论 -
6.Unity3D热更新LuaFramework入门实战(6)——网络
如今大部分的游戏都是网络游戏,网络游戏便涉及到网络连接发起、网络数据接收等内容。LuaFramework内置了网络模块(NetworkManager、SocketClient、ByteBuffer、Converter、Protocal),本篇将会介绍该模块的调用方法以及其原理。1、发起连接发起连接是客户端网络通信的第一步,LuaFramewor中,只需通过LuaFramework.AppC...原创 2019-09-02 10:15:25 · 1114 阅读 · 0 评论 -
7.Unity3D热更新LuaFramework入门实战(7)——PureMVC
LuaFramework使用了PureMVC框架。百度百科上说:“PureMVC是在基于模型、视图和控制器MVC模式建立的一个轻量级的应用框架”。PureMVC框架可以做到较好的解耦,减少游戏代码的相互调用。然而LuaFramework整合PureMVC属于“杀鸡用牛刀”,实质上只用到了事件分发(也可能是我理解得不够透彻)。如果单纯写一套事件分发系统,可能不到100行代码就能完成。1、解耦的好...原创 2019-09-02 10:15:37 · 1105 阅读 · 0 评论 -
8.Unity3D热更新LuaFramework入门实战(8)——声音管理器
LuaFramework内置的管理器包括GameManager(处理热更新)、luaManager(lua脚本管理器)、PanelManager(界面管理器)、NetworkManager(网络管理器)、ResourceManager(资源管理器)、TimerManager(时间管理器)、线程管理器(ThreadManager)和SoundManager(声音管理器)。其中GameMana...原创 2019-09-02 10:15:50 · 1120 阅读 · 0 评论 -
9.Unity3D热更新LuaFramework入门实战(9)——线程管理器
LuaFramework内置了线程管理器ThreadManager,一开始我以为这是个创建线程、终止线程等方法的封装。然而不是,它是热更新时使用线程下载资源的具体实现。那让我们来看看线程管理器的工作原理吧。1、GameManager的调用那么先看看在热更新过程中哪些地方调用到ThreadManager。热更新由GameManager执行(相关代码如下图所示),它在对比本地文件...原创 2019-09-02 10:16:04 · 1086 阅读 · 0 评论 -
10.Unity3D热更新LuaFramework入门实战(10)——示例程序
终于到了本系列完结的时候了。现在,大家对LuaFramework有个全方位的理解了吧!接下来通过一个例子总结tolua,作为“lua逻辑”的延伸,说明lua的写法。这个例子中玩家能够控制2D游戏角色走动,并且发射炮弹。1、目标制作如图所示的游戏,玩家可以通过键盘控制角色上下左右移动,角色有4个面向,走动过程中会播放行走动画。当玩家点击鼠标左键,角色会发射一颗炮弹。2、游戏资源...原创 2019-09-02 10:16:16 · 1124 阅读 · 1 评论 -
11.Unity3D热更新LuaFramework入门实战(11)——使用总结
用的框架是LuaFramework_UGUI 地址:https://github.com/jarjin/LuaFramework_UGUI最终效果:更新前:更新后:1.新建场景,创建GameManager上挂上Main.csMain.cs代码:(作用就是启动框架,为框架入口) void Start() { AppFac...原创 2018-08-09 15:01:41 · 1798 阅读 · 0 评论 -
12.Unity3D热更新LuaFramework入门实战(12)——打包工具
1.资源的创建注意一下命名规则,一个面板及其相关的东西都放在同一个文件夹中,如果文件夹命名为xxx,则面板预制要命名为xxxPanel2.打包以文件夹为单位进行打包,打包类为Packager.cs。这里要打包的东西分两种,一种为图片等资源,另一种为代码资源(即lua脚本)。对lua脚本的打包已经被框架搞好了,不需要我们考虑,我们要考虑的是对前者的打包,详细的见Packager.cs...原创 2019-09-02 10:20:10 · 1164 阅读 · 0 评论