基于PuerTS的Unity游戏客户端框架分享

本文档介绍了使用Unity2019.4.x与TypeScript进行游戏开发的流程,包括如何运行和编译项目,以及技术要求。详细讲解了TCP网络通信的实现,C#和JS层的交互,以及Addressable资源管理和Flatbuffer数据管理的方法。此外,还涵盖了红点系统、ink对话系统的使用以及基于FairyGUI的UI系统构建。

一、开发环境及工具

  • Unity2019.4.x ,
  • NodeJS 最新版,
  • VS Code最新版

二、第一次运行

2.1. 运行

  • 从 https://github.com/Justin-sky/Nice-TS 下载代码
  • 用Unity打开框架工程
  • Unity中点击运行即可

2.2. 编译TS

  • VS Code打开项目中的TsProj目录
  • 在VS Code中运行NPM脚本中的 bundle:dev

三、技术要求

  • Unity,要求对Unity2019及以上版本有所了解,了解URP相关知识
  • 熟悉C#语言
  • 熟悉TypeScript语言
  • 熟悉FairyGUI工具

四、基础架构

##4.1 架构
##4.2 TCP网络通信
  • C#层
Unity中实现的与服务器TCP通信模块,只负责包的转发功能,在发送消息包时,添加长度包头信息,在接收包后通过消息长度解析出包体内容,然后直接转发到JS层,具体协议解析由JS层实现
  • JS层
Net/GameSession.ts 实现与C#通信基础功能及消息重发功能 Net/SessionManager.ts 实现游戏中多个网络通道的管理
  • 使用方法
##4.3 Addressable资源管理
  • 资源标记
使用AssetGraph对资源地址进行标记,Graph位置: AssetGraph/ AddressableAssetGraph , 双击打开图形界面:
点击右角的Execute,即可自动对资源进行标记。
  • 资源打包
打开Addressables Groups窗口 第一次打包时,执行 Build/New Build/Default Build Script将打出首包资源 下一次打包,执行Build/Update a Previous Build将打出更新资源包
-游戏启动时进行资源更新
游戏中,资源更新逻辑实现在 UI/LaunchPage/CheckUpdate中, 游戏启动时,将自动检测服务器更新。
##4.4 Flatbuffer数据管理
  • 数据位置
Flatbuffer由工具篇中的Flatbuffer数据生成工具生成,相关位置为: bin数据文件:AssetsPackage/Config/fb Schema文件:data/fb
  • 使用方法
##4.5 红点系统
  • 代码位置
Framework/redhints 以树的形式实现红点功能,实现树的构建及事件广播功能
-使用方法
树的构建:
事件监听:

4.6 ink对话系统

  • 编辑器:Inky
编辑对话脚本:
导出为Json文件到AssetsPackage/Story目录中
  • 使用方法
##4.7 UI系统
  • UI界面
UI界面使用FairyGUI搭建,UI工程如下:
-UI框架
-1. 界面分类
UIPage : 全局界面,带有返回按键 UIWindow:窗口界面,一般出现在屏幕中心 UIWidge:小挂件,出现任意位置
-2. 创建页面
-3. 绑定界面上的组件
@binder 注解将自动将代码中的变量和FairyGUI中的元件进行绑定
-4. 组件使用
-5. 打开新页面方法
-6. 打开新窗口方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值