UNITY3D MMO开发指南(Lua)

MMO项目是游戏产业的常青树
占据了游戏行业营收的80%以上
这期内容主要帮助MMO开发者过渡新手阶段
MMO学习Q群:961722355
视频观看地址:
点击进入

Unity3d 大型MMORPG项目 新手入职培训

在这里插入图片描述

作为初级岗位,主要负责UI模块,美术换皮
比如:策划需要添加节日活动(春节,元旦,国庆)

最主要的工作量就是UI模块
需要在特定的界面增加一个按钮,实现点击逻辑

项目代码往往有5-20万行
新人会出现猴子吃西瓜,无从下手的情况

这个时候我门的项目就像一本厚厚的书
所以我们要先找到书里的目录,找到UI到底在多少页

但是大多数商业项目不会像教程项目一样
把文档写得工工整的

所以我们可以通过查看项目的文件夹
第一:形成项目的大局观
第二:脑海里有个目录在这里插入图片描述

扫描二维码关注公众号,回复: 14932200 查看本文章

很快我们定位到UI模块的路径

我们发现项目里有.lua后缀的文件
所以确定了这个项目是采用Lua作为脚本语言,
因为它是最早的代码热更解决方案
再加上MMO的代码重用在国内比较普遍
所以至今大部分的MMO项目仍然是采用LUA编写

MMO从2013年开始在资本的推动下
大量人才参与进来,开拓了游戏业板块,积累了很多现有代码资源
只要你能快速提炼 功能函数关键字,
90%的需求是可以通过复制+黏贴的方式完成任务

这个能力很重要,它直接影响了开发效率
效率=竞争力=我们的价值

题外话:
lua 未来会被边缘化或者完全替代(预计3-5年)
因为LUA的编写代码体验是很糟糕的

这导致很多人都想解决这个问题:
比如C#热更框架的IlRuntime
Xlua框架作者新出的
TS热更框架Puerts
这两种语言的编写体验比LUA高出很多
现在不少新的项目已经抛弃LUA语言了,使用新的方案了

所以在编写代码之前多看一下这套项目实现了哪些功能
当我们遇到需求时
就能从脑海尽可能多的提取代码复用
而不用重新编写新功能

入职之后一般会有2-30天的时间处于空闲状态
这个时候正确的做法是尽快阅读和熟悉公司的代码
而不是觉得没事干

因为接到工作任务之后,开发效率和下班时间是挂钩的

实战开发技巧:
比如我们要在登录界面中加多一个功能
并且点击输出hello world
在这里插入图片描述
如何在大型项目中快速找到自己关注的代码?
举个例子:
如何找到点击按钮的处理逻辑?
通过U3D面板我们知道这个按钮对象叫Btnlogin
方法:代码关键字搜索
可以搜索代码关键字"BtnLogin",找到相关代码
在这里插入图片描述
假如,搜不到怎么办?
这种情况一般是各种各样的原因规范没做到位
可能是项目急需上线,开发时间分配,管理等等原因
方法二:错误定位
我们可以通过把预制体的登录按钮删除,程序运行肯定会报错
这样我们也可以快速定位的需要关注的局部代码,把范围缩小
在这里插入图片描述
这两个技巧能让你在翻找代码的时候事半功倍

MMO的开发都是模块化的,都是继承,复制,代码重用
同样功能的模块都是大同小异
所以当我们看懂了一个小模块,基本就上其他的代码都能很快上手

就好比下图的登录和地图模块
这个项目采用了三层开发思想,每个小模块拆成数据,控制,显示
典型的MVC模板,为什么要用MVC?

1:代码的可维护性高
2:耦合度低
3:方便换皮(改写view逻辑)
在这里插入图片描述

在这里插入图片描述
不难发现,整个项目都有规律可循
ctrl负责主要逻辑,依赖data和view
data负责处理数据
view 负责unity组件做交互

举个例子:
登录模块
ctrl->view
ctrl 向服务器请求登录,打开UI登录中

ctrl->data
服务器返回登录数据,存到data中

ctrl-view
data的数据包含了服务器的列表,ctrl调用view的显示
view负责打开UI预制体,赋值UI文本等

如何快速掌握一个项目的框架?
尝试拓展功能
比如增项目的任意地方,添加一个按钮,点击时输出helloWorld即可

实战指导:
比如策划需要增加春节领取元宝的活动
在这里插入图片描述

这个时候我们增加一个文件夹Edu
里面包含一个edu_ctrl.lua
在这里插入图片描述
如何实例这个ctrl类?
有两种办法,一种是通过框架本身的系统,在指定的代码处插入
要找到入口就需要多阅读代码,整理出加载流程

第二种办法,绕过本身流程,自行开辟

在团队里建议使用第一种办法,因为这能代码更有规律,比较适合团队
因为主程一般是知道的这些关键点的,问一下可以节省很多时间

第二种情况适合项目二开
一般用于没有资源支持,时间不允许再继续寻找和探索

实现:
在登录界面点击测试按钮时,我们打开EduCtrl

在这里插入图片描述
VIEW逻辑
创建自己的UI预制体,记录下assetBundle标签
在这里插入图片描述
ui_config加载UI表单,ab标签,名字
在这里插入图片描述
UITable.node_list 存放了对象的引用方便LUA访问
比如经常要访问按钮订阅点击事件

在这里插入图片描述

在这里插入图片描述
成功拓展有一个功能之后,要完成策划的需求就是工作量和时间的问题

猜你喜欢

转载自blog.csdn.net/koljy111/article/details/121765727
今日推荐