真_u3d程序员,基本概要
来源:互联网 发布:关闭nagle算法 编辑:程序博客网 时间:2024/06/07 03:54
不知道大家为什么入行?
为了赚钱,为了养家糊口也是个不错的原因
但有多少人和我一样是因为追求美丽的事情才入行的
代码之美,在于发现
真的很美
其实代码很多层次,工种也很多,也不能一概而论
而最美的代码肯定不是你现在每天在做的代码
去找回你曾经的感动吧
最后一站,仿王者荣耀手游框架分析
打开【最后一战】客户端源码
-建议用Unity4.6.3
首先看到登录界面就很不和谐
-所以你应该知道UI,和3D场景是2个人分别做的,
明显UI不能看了吧
-所以哪个做UI的程序猿水平你看出来了吧,而不出意外,肯定又用到了臭名昭著的NGUI框架
这时候你会碰到第一个坑,NGUI我不懂啊,我去看下API
如果你有这个想法,我不得提供一些NGUI资料给你,但详细链接和NGUI入门不在这里叙述了
(我在公司一份NGUI代码都没完整写过,我连一天NGUI的文档都没看过
但看看我是怎么解决的,不超过5分钟,5分钟你可能连NGUI的资料都没找到,网络太大了,你找到的都是很废的资料)
首先找到登录按钮
-看到NGUI多恶心了吧,比较难找,(如果你没经验)
然后点击事件是?
-没有明显提示,看到了吧,恶心你(这个做UI的程序哥们连loginbutton,denglu这样的名字也不愿意起,就留一个Button恶心你)
双击打开EventListener Script
-分析一下,里面确实涉及一些底层的软件思想,确实值得学习,但是对于新手就恶心了
void OnSubmit (){ if (onSubmit != null) onSubmit(gameObject); }void OnClick (){ if (onClick != null) onClick(gameObject); }void OnDoubleClick (){ if (onDoubleClick != null) onDoubleClick(gameObject); }void OnHover (bool isOver){ if (onHover != null) onHover(gameObject, isOver); }void OnPress (bool isPressed){ if (onPress != null) onPress(gameObject, isPressed); }void OnSelect (bool selected){ if (onSelect != null) onSelect(gameObject, selected); }
大概原理就是button绑定一个event事件,然后submit,click,press等事件,派发到一个GameObject去处理,那到底这个GameObject在哪里呢?
-最后在这里找到 LoginWindow.cs
来到这里明显能看出,整个框架还是不错的,命名不错,(view windows,分开,清晰,还有FSM是状态机的意思,就是说这套代码有状态机,在加一个什么事件流就是很多人鼓吹的游戏AI,其实很废话,那个游戏没有FSM,客户端+服务器都有)
-所以这还是一个很值得学习的源码,在LoginWindow->onLoginSumbit添加一下断点,然后就可以开始学习了
void OnLoginSubmit(GameObject go){#if UNITY_STANDALONE_WIN if (string.IsNullOrEmpty(mLoginAccountInput.value)) return; mLoginPassInput.value = "123";#else if (string.IsNullOrEmpty(mLoginAccountInput.value) || string.IsNullOrEmpty(mLoginPassInput.value)) return;#endif}
这时候你可能又会碰到第二个坑,服务器我不会搭啊
-这也是没办法的,这是U3D入门概要,服务器就不在这里叙述了
-以后你会碰到更多这样的坑,就看你愿不愿意花时间去踩坑了
- 真_u3d程序员,基本概要
- 真_u3d程序员,基本脚本语法篇
- 黑马程序员 数组概要
- 黑马程序员------Java概要
- Mysql数据库基本操作概要
- Mysql数据库基本操作概要
- Web文件上传基本概要
- 黑马程序员_Winform控件概要
- 圣经基本真道
- 概要设计书的基本内容
- 软件概要设计的基本任务
- 软件概要设计的基本任务
- 车载导航仪的基本机能概要
- 1、TCL脚本基本语法(概要)
- 医院系统--基本概要分析#简单#随笔
- 《程序员》真好看
- 程序员真辛苦!
- 程序员啊!真命苦!
- 自定义圆圈读条动画,画布画笔初入门
- python的加密模块 hashlib
- struts2入门案例
- jquery中的ready函数与window.onload谁先执行
- linux IO 内核参数调优 之 参数调节和场景分析
- 真_u3d程序员,基本概要
- dobbo 消费者 调用dubbo接口出现 time out 异常的解决方法
- oracle重建控制文件的resetlogs选项
- 保护模式下的RPL(一)
- 大型网站技术架构演变过程
- 工具类-获取一定长度的随机字符串
- 使用WinINet和WinHTTP实现Http访问
- Android 7.0 Gallery图库源码分析1
- java学习资料(不定期更新)