目录
目录README.md

项目文档

目录

引言

本文档旨在详细介绍一个基于Unity的游戏开发项目,重点是AssetBundle的打包、远端加载、以及用户界面更新。文档将覆盖项目的整体架构、文件结构、AssetBundle的打包和增量打包策略、用户界面设计与热更新流程、以及3D漫游场景作为热更新示例的具体实现。通过本项目的实现,旨在提高游戏的可维护性和用户体验,确保在资源更新时的高效性和稳定性。

项目概述

本项目主要关注Unity游戏开发中的AssetBundle技术,包括如何有效地打包、加载、和更新游戏资源。通过实现AssetBundle的打包和增量更新机制,可以在不重新发布整个游戏的情况下,进行资源的热更新。项目还包括设计用户友好的界面,展示资源更新流程,以及一个3D漫游场景的实现,作为热更新的示例场景。该3D漫游场景允许用户控制角色进行互动,并且场景中设有多个可互动区域和导航系统,增强用户的沉浸体验。

文件结构

项目的文件结构如下:

项目运行流程图

项目流程图

工程文件结构图

工程文件结构图

AssetBundle的打包

打包原则

  • 零冗余:确保打包的AssetBundle中不包含重复或不必要的资源。
  • 分包:根据功能、场景或资源类型将AssetBundle拆分成多个小包,以便进行增量更新。
  • 增量更新:只打包有变动的资源,生成新的AssetBundle包,并提供下载链接。

打包步骤

  1. 资源整理:对资源进行分类和整理,确保资源的唯一性和合理性。
  2. 版本控制:为每个AssetBundle设置版本号,并在打包时更新版本信息。
  3. 打包资源:使用Unity的AssetBundle系统打包资源,确保每个AssetBundle都是必要的。
  4. 生成版本文件:在StreamingAssets文件下写入VERSION.txt文件,记录所有AssetBundle的版本信息。

AssetBundle的打包

增量AssetBundle的打包

增量打包原则

  • 版本对比:通过读取本地和远程的版本文件,对比版本号,确定需要更新的AssetBundle。
  • 断点续传:支持下载过程中的断点续传功能,确保在网络不稳定时也能继续下载。

增量打包步骤

  1. 读取版本信息:从本地和远程读取VERSION.txt文件,对比版本号。
  2. 确定更新列表:根据版本号差异,确定需要更新的AssetBundle列表。
  3. 打包增量资源:只打包有变动的资源,生成新的AssetBundle包。
  4. 更新版本文件:更新远程VERSION.txt文件,记录新的AssetBundle版本信息。

增量AssetBundle的打包

用户界面与热更新流程

用户界面设计

  • 热更新流程截图:在用户界面上显示热更新的整个流程截图,让用户了解更新过程。
  • 用户登陆界面:提供用户登陆功能,验证用户身份。
  • 场景下载界面:显示可下载的场景列表,并提供下载按钮。
  • 角色模型选择界面:显示可选的角色模型列表,并提供选择功能。

热更新流程

  1. 对比版本号:在启动游戏时,对比本地和远程的版本号。
  2. 对比Package/AssetBundle:根据版本号差异,确定需要下载的Package或AssetBundle。
  3. 下载资源:提供下载功能,支持断点续传和异步下载。
  4. 更新游戏:下载完成后,自动更新游戏资源,并重启游戏。

用户界面与热更新流程

3D漫游场景作为热更新场景

场景设计

  • 漫游场景:设计一个大型3D漫游场景,作为热更新的示例场景。
  • 角色控制:角色应具有行走、快跑、跳跃、互动等四种动画状态,并支持鼠标和键盘控制移动。
  • 导航系统:使用Navgation导航系统烘焙场景,确保角色可以在场景中自由移动。
  • 互动区域:在场景中设置至少10个可互动区域,如开关、按钮等,当角色进入区域时显示UI文字提示。
  • 门的控制:门的开关功能应支持靠近打开、远离关闭的逻辑。

热更新实现

  1. 场景打包:将漫游场景作为一个单独的AssetBundle进行打包。
  2. 场景下载:在场景下载界面中提供漫游场景的下载按钮,用户可单独下载该场景。
  3. 场景更新:下载完成后,自动加载并更新漫游场景资源,用户可立即进入新场景进行体验。

3D漫游场景作为热更新场景

功能代码实现截图

  1. 可视化打包界面功能代码实现截图
  2. 增量更新功能代码实现截图
  3. 断点续传及异步功能代码实现截图 功能代码实现截图 功能代码实现截图 功能代码实现截图

    组员分工

  4. 谢志恒:实现热更新功能包括零冗余,分包,增量更新,断点续传,异步等代码的编写,设计了用户登陆界面,场景下载界面。
  5. 张麒:实现热更新功能包括零冗余,分包,增量更新,断点续传,异步等部分代码的编写,制作了人物移动,快跑,互动,跳跃的动画。
  6. 吴嘉炜:实现热更新功能包括零冗余,分包,增量更新,断点续传,异步等代码的编写,同时完成了场景的搭建和人物漫游逻辑。
关于

第一阶段的大作业文档

1.5 GB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号