java--游戏后端--项目开发总结--客户端
- 功能
- 资源更新
- lua加载
- 消息分发
- 技术
- UGUI
- XLua
- Protostuff
- 流程解读
- 客户端请求后台获取最新资源
- 后台根据资源版本文件进行比对获取资源增量列表压缩后发给客户端
- 客户端获取压缩资源后解压更新资源
- 客户端加载最新资源后加载lua
- 客户端加载了lua后加载协议处理
- 客户端服调用lua处理类进行业务处理
- 开发总结
- 关于fbx资源导入
- 修改动画
- 生成动画
- 生成动画状态机
- 生成预制
- 使用工具进行一键打包
- 字体生成后需要改名,否则生成的说明文件会被覆盖,字体在UNITY重启后会失效
- 关于地图
- 先用Tiled和Tiled2Unity制作了2d地图导入了u3d,但是实在不好用,引发出了8方向的素材材质生成、动画与动画状态机,遂放弃
- 使用u3d自带的地形制作
- 关于射线检测大坑
-
在C#中 直接用个RaycastHit接收检测到的物体,但是在lua中没法用out关键字,因为xlua中对于out的解决办法是通过作为第二返回值(如果函数原本就有返回值的话)的方式,而Physics.Raycast(ray)恰好又是另一个重载函数,所以 Physics.Raycast(ray, out hit)就没法用了。
- 解决办法:通过Physics.RaycastAll(ray)[0]获取到所有被检测的物体
-
- 协议解码
- 通过了解protobuf的编码原理,解码成对应的lua表
- 已完成解码int、long、string、float、double、list
- 对于map的解码操作,后期有时间可能会考虑,但一般用到map的地方都可以转换为list,所以暂未进行解码操作
- 协议编码
- 通过了解protobuf的编码原理,编码成对应的byte[]
- 已完成编码int、long、string、float、double、list
- 关于同步
- 怪物同步
- 玩家同步
- 掉落同步
- 玩家移动同步
- 玩家攻击同步
- 怪物死亡同步
- 关于fbx资源导入