文档章节

java--游戏后端--项目开发总结--客户端

o
 osc_5se3mmx9
发布于 2019/06/17 16:26
字数 533
阅读 13
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

  1. 功能
    1. 资源更新
    2. lua加载
    3. 消息分发
  2. 技术
    1. UGUI
    2. XLua
    3. Protostuff
  3. 流程解读
    1. 客户端请求后台获取最新资源
    2. 后台根据资源版本文件进行比对获取资源增量列表压缩后发给客户端
    3. 客户端获取压缩资源后解压更新资源
    4. 客户端加载最新资源后加载lua
    5. 客户端加载了lua后加载协议处理
    6. 客户端服调用lua处理类进行业务处理
  4. 开发总结
    1. 关于fbx资源导入
      1. 修改动画
      2. 生成动画
      3. 生成动画状态机
      4. 生成预制
    2. 使用工具进行一键打包
    3. 字体生成后需要改名,否则生成的说明文件会被覆盖,字体在UNITY重启后会失效
    4. 关于地图
      1. 先用Tiled和Tiled2Unity制作了2d地图导入了u3d,但是实在不好用,引发出了8方向的素材材质生成、动画与动画状态机,遂放弃
      2. 使用u3d自带的地形制作
    5. 关于射线检测大坑
      1. 在C#中 直接用个RaycastHit接收检测到的物体,但是在lua中没法用out关键字,因为xlua中对于out的解决办法是通过作为第二返回值(如果函数原本就有返回值的话)的方式,而Physics.Raycast(ray)恰好又是另一个重载函数,所以 Physics.Raycast(ray, out hit)就没法用了。

      2. 解决办法:通过Physics.RaycastAll(ray)[0]获取到所有被检测的物体
    6. 协议解码
      1. 通过了解protobuf的编码原理,解码成对应的lua表
      2. 已完成解码int、long、string、float、double、list
      3. 对于map的解码操作,后期有时间可能会考虑,但一般用到map的地方都可以转换为list,所以暂未进行解码操作
    7. 协议编码
      1. 通过了解protobuf的编码原理,编码成对应的byte[]
      2. 已完成编码int、long、string、float、double、list
    8. 关于同步
      1. 怪物同步
      2. 玩家同步
      3. 掉落同步
      4. 玩家移动同步
      5. 玩家攻击同步
      6. 怪物死亡同步
上一篇: Java 面向对象
下一篇: java 连接数据库
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
5.9K
18
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
619
1
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
5分钟 maven3 快速入门指南

前提条件 你首先需要了解如何在电脑上安装软件。如果你不知道如何做到这一点,请询问你办公室,学校里的人,或花钱找人来解释这个给你。 不建议给Maven的服务邮箱来发邮件寻求支持。 安装Mav...

fanl1982
2014/01/23
1.2W
6

没有更多内容

加载失败,请刷新页面

加载更多

什么是TypeScript?为什么我要用它代替JavaScript? [关闭]

问题: Closed . 已关闭 。 This question needs to be more focused . 这个问题需要更加集中 。 It is not currently accepting answers. 它当前不接受答案。 Want to improve this questio......

法国红酒甜
31分钟前
27
0
键盘输入限制

// 用户输入的时候替换:nativeOnInput 替换负数setInputValue(e, row, prop) { if(e.target.value.includes('-')) { e.target.value = '-'+e.target.value.replace(/-/g, ......

赤月三号
35分钟前
13
0
软件工程国家标准

软件工程国家标准分为六大类:专业基础标准、过程标准、质量标准、技术与管理标准、工具与方法标准 和 数据标准。 软考大纲将软件工程标准分为四大类:基础标准、开发标准、文档标准 和管理标...

LitStone
44分钟前
13
0
优化HBASE有感

今天终于把这一块完成了,有点慢,我告诉自己别慌,别急,慢下来。 这是产后回来做的第一个小项目,我有点急,有点慌。 起始于对HBASE一无所知的小白。 接到任务,有点头大。 先把任务分析了...

_小茗同学_
48分钟前
15
0
HashMap如何解决hash冲突

1、HashMap如何解决hash冲突? HashMap是通过 拉链法来处理冲突的 2. hash冲突的几种解决方法? 1)、开放地址法: 当 p=H(key) 出现冲突的话,那再次计算 p=H(key+1) 这样每次 加1 直到没有冲...

加油加油再加油
57分钟前
29
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部