UNITY3D MMO开发指南(Lua)
MMO项目是游戏产业的常青树
占据了游戏行业营收的80%以上
这期内容主要帮助MMO开发者过渡新手阶段
MMO学习Q群:961722355
视频观看地址:
点击进入
Unity3d 大型MMORPG项目 新手入职培训
作为初级岗位,主要负责UI模块,美术换皮
比如:策划需要添加节日活动(春节,元旦,国庆)
最主要的工作量就是UI模块
需要在特定的界面增加一个按钮,实现点击逻辑
项目代码往往有5-20万行
新人会出现猴子吃西瓜,无从下手的情况
这个时候我门的项目就像一本厚厚的书
所以我们要先找到书里的目录,找到UI到底在多少页
但是大多数商业项目不会像教程项目一样
把文档写得工工整的
所以我们可以通过查看项目的文件夹
第一:形成项目的大局观
第二:脑海里有个目录
很快我们定位到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访问
比如经常要访问按钮订阅点击事件
成功拓展有一个功能之后,要完成策划的需求就是工作量和时间的问题
UNITY3D MMO开发指南(Lua)相关推荐
- 《游戏AI开发指南(基于Lua的人工智能在游戏中的应用)》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Lua+人机交互+沙箱+导航+决策树+影响力地图+立钻哥哥+==)
<游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> <游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> 版本 作者 参与者 完成日期 备注 YanlzAI_Lu ...
- [Unity3D]Unity3D游戏开发Lua随着游戏的债券(于)
---------------------------------------------------------------------------------------------------- ...
- SteamVR2.0开发指南(Yanlz+Unity+SteamVR+Plugin+OpenVR+InputSystem+Kunckles+VIVE+Oculus+OpenXR+立钻哥哥++ok++)
<SteamVR2.0开发指南> 版本 作者 参与者 完成日期 备注 SteamVR2.0_Guide_V01_1.0 严立钻 2019.01.23 ++++SteamVR2.0开发指南: ...
- SteamVR2.0开发指南
2019年02月14日 22:21:19 VRunSoftYanlz 阅读数:562 <SteamVR2.0开发指南> 版本 作者 参与者 完成日期 备注 SteamVR2.0_Guide ...
- Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
- 猫都能学会的Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
- Unity 5.x 游戏开发指南 HD版 final.pdf
下载地址:网盘下载 <Unity 5.x游戏开发指南>详细介绍了Unity3D 5.0的各个主要系统,包括地形系统.脚本系统.动画系统.界面系统.音频系统.网络通讯系统和2D系统,并通过大 ...
- Boost程序库完全开发指南——深入C++“准”标准库(第3版)
内容简介 · · · · · · Boost 是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库,有着"C++'准'标准库"的美誉. Boost 由C++标准委员会 ...
- Unity3D游戏开发之网络游戏服务器架构设计培训
下面我们开始今天的Unity3D游戏开发技能培训. 我们专业培养"游戏主程",挑战20W年薪,初期学习Unity3D培训目标:让U3D初学者可以更快速的掌握U3D技术,自行制作修改 ...
- [整理]Unity3D游戏开发之Lua
原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...
最新文章
- 想轻松入门Python编程,这10个经典案例你还不知道嘛?
- 关于OpenCV中常见函数用法总结
- HTML 5 视频,音频
- 细数 Spring 那些最常见的面试问题
- Android 清除png图片的白色背景
- Codeforces Round #579 (Div. 3) F1. Complete the Projects (easy version) 排序 + 贪心
- Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告
- 计算abc=a!+b!+c!
- 区块链 用户身份权限模式 方案
- C语言基础视频教程-欧阳坚-专题视频课程
- PHP中MD5函数效率
- python爬股票历史价格_【Python】利用ricequant获取上证指数以及所有股票历史价格数据...
- 企业微信每日定时自动上报
- 手机照片分辨率dpi怎么调?一寸证件照照片dpi怎么调300?
- qt中去除首尾空格的操作simplified()和trimmed()的对比操作
- pytorch训练Class-Balanced Loss
- 理解Memcached缓存[转载]
- 什么是网关?使用网关有什么好处
- 社区宽带繁忙是什么意思_康平附近企业宽带价位,附近光纤宽带上门安装多少钱...
- 为什么改了css网页没有变化_「前端开发」HTML/CSS真的好学吗?为什么小胖认为它并没那么简单...
热门文章
- 何钦铭.c语言程序设计,《C语言程序设计》 - 何钦铭
- java is alphabetic_java中的java.lang.Character类 – 方法| 2 - Break易站
- 如何简单理解光圈大小对手机摄影的影响?
- python 爬取 谷歌以及百度图片
- 【金猿案例展】某新型股份制商业银行——客服智能质检系统建设
- 商业银行vh是哪个银行的简称_各个银行的简称是什么?
- 用python玩转数据前三节_2020中国大学慕课用Python玩转数据题目答案
- Python将二维数组/多维数组转换为一维
- 栅栏CyclicBarrier
- 富士胶片将作为全球合作伙伴赞助菲利普·科特勒教授发起的2019年世界营销峰会,并在网站发布专访