一、开发环境及工具
- 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. 打开新窗口方法

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

被折叠的 条评论
为什么被折叠?



