Unity GameFramework 游戏框架: 更新模式

[!tip] 提示
遊戲更新模式直接決定了遊戲是否可以運行

GameFramework 有四种更新模式

Editor Resource Mode：編輯器模式

Package: 单机模式

Updatable ：運行前更新

Updatable While Playing 運行時更新

1. 編輯器模式

不进行更新，直接在编辑器里讀取本地工程内資源

開啓方法：
勾選: Unity -> Game Framework -> Builtin -> 檢查器 -> Editor Resource Mode

2. 单机模式

讀取 Assets/StreamingAssets 文件里資源进行更新

新建 Assets/StreamingAssets 文件夾

新建 Assets/GameMain/Configs/ResourceCollection.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<UnityGameFramework>
<ResourceEditor>
<Settings>
<SourceAssetRootPath>Assets/GameMain</SourceAssetRootPath>
<SourceAssetSearchPaths>
<SourceAssetSearchPath RelativePath="" />
</SourceAssetSearchPaths>
<SourceAssetUnionTypeFilter>t:Scene t:Prefab t:Shader t:Model t:Material t:Texture t:AudioClip t:AnimationClip t:AnimatorController t:Font t:TextAsset t:ScriptableObject</SourceAssetUnionTypeFilter>
<SourceAssetUnionLabelFilter>l:ResourceInclusive</SourceAssetUnionLabelFilter>
<SourceAssetExceptTypeFilter>t:Script</SourceAssetExceptTypeFilter>
<SourceAssetExceptLabelFilter>l:ResourceExclusive</SourceAssetExceptLabelFilter>
<AssetSorter>Path</AssetSorter>
</Settings>
</ResourceEditor>
</UnityGameFramework>

新建 Assets/GameMain/Scripts/GameFrameworkConfigs.cs 文件

using GameFramework;
using System.IO;
using UnityEngine;
using UnityGameFramework.Editor;
using UnityGameFramework.Editor.ResourceTools;
namespace StarForce.Editor
{
public static class GameFrameworkConfigs
{
[BuildSettingsConfigPath]
public static string BuildSettingsConfig = Utility.Path.GetRegularPath(Path.Combine(Application.dataPath, "GameMain/Configs/BuildSettings.xml"));

[ResourceCollectionConfigPath]
public static string ResourceCollectionConfig = Utility.Path.GetRegularPath(Path.Combine(Application.dataPath, "GameMain/Configs/ResourceCollection.xml"));

[ResourceEditorConfigPath]
public static string ResourceEditorConfig = Utility.Path.GetRegularPath(Path.Combine(Application.dataPath, "GameMain/Configs/ResourceEditor.xml"));

[ResourceBuilderConfigPath]
public static string ResourceBuilderConfig = Utility.Path.GetRegularPath(Path.Combine(Application.dataPath, "GameMain/Configs/ResourceBuilder.xml"));
}}

打开資源编辑器: unity -> Game Framework -> Resource Tool -> Resource Editor -> 右边資源全部移动到左边 -> save

打开資源生成器: unity -> Game Framework -> Resource Tool -> Resource Builder
Platforms : 勾选对应平台
Internal Resource Version : 填写新版本号
Output Directory : 选择输出目錄 (选项目外的)
Save : 更新 ResourceCollection.xml 文件
Start Build Resources : 生成

複制: 输出目錄/Package单机模式或Packed可更新模式/x_x_x/指定平台/ 所有文件到 StreamingAssets 文件夾

[!NOTE]
每個平台上都需要單獨導入一次

Unity 中关闭編輯器模式测试效果

3. 运行前更新

聯機更新，更新後才可進入遊戲

4. 運行時更新

聯機更新，遊戲中進行更新

常見問題

調試別人項目：直接複制 Assets 文件夾？
更改默认目錄: Assets/GameMain/Scripts/Utility/AssetUtility.cs