finish yoo

master
zc 2025-05-23 17:37:58 +08:00
parent f5b129aa21
commit 4fbf3cf752
14 changed files with 199 additions and 29 deletions

View File

@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 185f6993d5150494d98da50e26cb1c25, type: 3}
m_Name: AssetBundleCollectorSetting
m_EditorClassIdentifier:
ShowPackageView: 1
ShowEditorAlias: 0
UniqueBundleName: 0
Packages:
- PackageName: DefaultPackage
PackageDesc:
EnableAddressable: 0
LocationToLower: 0
IncludeAssetGUID: 0
AutoCollectShaders: 1
IgnoreRuleName: NormalIgnoreRule
Groups:
- GroupName: Prefab
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/Res/Prefab
CollectorGUID: 6c0b82f254d6f174cb22b578d79bf539
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Scene
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/Res/Scene
CollectorGUID: cc26c1ecf46a43647aab44e108ddf282
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Sprite
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/Res/Sprite
CollectorGUID: e09b6173f34194542b1f00496c15b774
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:
- GroupName: Texture
GroupDesc:
AssetTags:
ActiveRuleName: EnableGroup
Collectors:
- CollectPath: Assets/Res/Texture
CollectorGUID: 4f9a35e77d653a24ebfa787b68b32642
CollectorType: 0
AddressRuleName: AddressByFileName
PackRuleName: PackDirectory
FilterRuleName: CollectAll
AssetTags:
UserData:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dc6b387f5301cbf47bec70f5167d0856
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5bd1afdce9715f84eb4cbc901922afc2, type: 3}
m_Name: YooAssetSettings
m_EditorClassIdentifier:
DefaultYooFolderName: yoo
PackageManifestPrefix:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 35ccac627b6aa5a4ab29461912950089
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections; using System.Collections;
// using UniFramework.Event;
using UnityEngine; using UnityEngine;
using YooAsset; using YooAsset;
@ -9,6 +10,7 @@ public class Init : MonoBehaviour
/// 资源系统运行模式 /// 资源系统运行模式
/// </summary> /// </summary>
public EPlayMode PlayMode = EPlayMode.EditorSimulateMode; public EPlayMode PlayMode = EPlayMode.EditorSimulateMode;
public string PackageName = "DefaultPackage"; public string PackageName = "DefaultPackage";
public string SceneName; public string SceneName;
@ -22,6 +24,12 @@ public class Init : MonoBehaviour
IEnumerator Start() IEnumerator Start()
{ {
// 游戏管理器
// GameManager.Instance.Behaviour = this;
//
// // 初始化事件系统
// UniEvent.Initalize();
// 初始化资源系统 // 初始化资源系统
YooAssets.Initialize(); YooAssets.Initialize();
@ -29,14 +37,18 @@ public class Init : MonoBehaviour
var go = Resources.Load<GameObject>("PatchWindow"); var go = Resources.Load<GameObject>("PatchWindow");
GameObject.Instantiate(go); GameObject.Instantiate(go);
yield return StartCoroutine(InitPackage()); // 开始补丁更新流程
// var operation = new PatchOperation("DefaultPackage", PlayMode);
// YooAssets.StartOperation(operation);
yield return InitPackage();
// 设置默认的资源包 // 设置默认的资源包
var gamePackage = YooAssets.GetPackage(PackageName); var gamePackage = YooAssets.GetPackage("DefaultPackage");
YooAssets.SetDefaultPackage(gamePackage); YooAssets.SetDefaultPackage(gamePackage);
yield return new WaitForSeconds(1);
// 切换到主页面场景 // 切换到主页面场景
// SceneEventDefine.ChangeToHomeScene.SendEventMessage();
YooAssets.LoadSceneSync(SceneName);
} }
private void Update() private void Update()
@ -48,9 +60,10 @@ public class Init : MonoBehaviour
} }
#region FsmInitializePackage
private IEnumerator InitPackage() private IEnumerator InitPackage()
{ {
// 创建资源包裹类 // 创建资源包裹类
var package = YooAssets.TryGetPackage(PackageName); var package = YooAssets.TryGetPackage(PackageName);
if (package == null) if (package == null)
@ -63,7 +76,8 @@ public class Init : MonoBehaviour
var buildResult = EditorSimulateModeHelper.SimulateBuild(PackageName); var buildResult = EditorSimulateModeHelper.SimulateBuild(PackageName);
var packageRoot = buildResult.PackageRootDirectory; var packageRoot = buildResult.PackageRootDirectory;
var createParameters = new EditorSimulateModeParameters(); var createParameters = new EditorSimulateModeParameters();
createParameters.EditorFileSystemParameters = FileSystemParameters.CreateDefaultEditorFileSystemParameters(packageRoot); createParameters.EditorFileSystemParameters =
FileSystemParameters.CreateDefaultEditorFileSystemParameters(packageRoot);
initializationOperation = package.InitializeAsync(createParameters); initializationOperation = package.InitializeAsync(createParameters);
} }
@ -71,7 +85,8 @@ public class Init : MonoBehaviour
if (PlayMode == EPlayMode.OfflinePlayMode) if (PlayMode == EPlayMode.OfflinePlayMode)
{ {
var createParameters = new OfflinePlayModeParameters(); var createParameters = new OfflinePlayModeParameters();
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); createParameters.BuildinFileSystemParameters =
FileSystemParameters.CreateDefaultBuildinFileSystemParameters();
initializationOperation = package.InitializeAsync(createParameters); initializationOperation = package.InitializeAsync(createParameters);
} }
@ -82,8 +97,10 @@ public class Init : MonoBehaviour
string fallbackHostServer = GetHostServerURL(); string fallbackHostServer = GetHostServerURL();
IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer); IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
var createParameters = new HostPlayModeParameters(); var createParameters = new HostPlayModeParameters();
createParameters.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(); createParameters.BuildinFileSystemParameters =
createParameters.CacheFileSystemParameters = FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices); FileSystemParameters.CreateDefaultBuildinFileSystemParameters();
createParameters.CacheFileSystemParameters =
FileSystemParameters.CreateDefaultCacheFileSystemParameters(remoteServices);
initializationOperation = package.InitializeAsync(createParameters); initializationOperation = package.InitializeAsync(createParameters);
} }
@ -96,11 +113,13 @@ public class Init : MonoBehaviour
string fallbackHostServer = GetHostServerURL(); string fallbackHostServer = GetHostServerURL();
string packageRoot = $"{WeChatWASM.WX.env.USER_DATA_PATH}/__GAME_FILE_CACHE"; //注意:如果有子目录,请修改此处! string packageRoot = $"{WeChatWASM.WX.env.USER_DATA_PATH}/__GAME_FILE_CACHE"; //注意:如果有子目录,请修改此处!
IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer); IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
createParameters.WebServerFileSystemParameters = WechatFileSystemCreater.CreateFileSystemParameters(packageRoot, remoteServices); createParameters.WebServerFileSystemParameters =
WechatFileSystemCreater.CreateFileSystemParameters(packageRoot, remoteServices);
initializationOperation = package.InitializeAsync(createParameters); initializationOperation = package.InitializeAsync(createParameters);
#else #else
var createParameters = new WebPlayModeParameters(); var createParameters = new WebPlayModeParameters();
createParameters.WebServerFileSystemParameters = FileSystemParameters.CreateDefaultWebServerFileSystemParameters(); createParameters.WebServerFileSystemParameters =
FileSystemParameters.CreateDefaultWebServerFileSystemParameters();
initializationOperation = package.InitializeAsync(createParameters); initializationOperation = package.InitializeAsync(createParameters);
#endif #endif
} }
@ -110,23 +129,13 @@ public class Init : MonoBehaviour
// 如果初始化失败弹出提示界面 // 如果初始化失败弹出提示界面
if (initializationOperation.Status != EOperationStatus.Succeed) if (initializationOperation.Status != EOperationStatus.Succeed)
{ {
Debug.LogError($"{initializationOperation.Error}"); Debug.LogWarning($"{initializationOperation.Error}");
// PatchEventDefine.InitializeFailed.SendEventMessage();
} }
else else
{ {
// 2. 请求资源清单的版本信息 // _machine.ChangeState<FsmRequestPackageVersion>();
var operation =package.RequestPackageVersionAsync(); yield return StartCoroutine(UpdatePackageVersion());
yield return operation;
if (operation.Status != EOperationStatus.Succeed)
yield break;
// 3. 传入的版本信息更新资源清单
var packageVersion = package.GetPackageVersion();
var operation1 =package.UpdatePackageManifestAsync(packageVersion);
yield return operation1;
if (operation1.Status != EOperationStatus.Succeed)
yield break;
Debug.Log("init finish");
} }
} }
@ -173,13 +182,64 @@ public class Init : MonoBehaviour
_defaultHostServer = defaultHostServer; _defaultHostServer = defaultHostServer;
_fallbackHostServer = fallbackHostServer; _fallbackHostServer = fallbackHostServer;
} }
string IRemoteServices.GetRemoteMainURL(string fileName) string IRemoteServices.GetRemoteMainURL(string fileName)
{ {
return $"{_defaultHostServer}/{fileName}"; return $"{_defaultHostServer}/{fileName}";
} }
string IRemoteServices.GetRemoteFallbackURL(string fileName) string IRemoteServices.GetRemoteFallbackURL(string fileName)
{ {
return $"{_fallbackHostServer}/{fileName}"; return $"{_fallbackHostServer}/{fileName}";
} }
} }
#endregion
#region FsmRequestPackageVersion
private IEnumerator UpdatePackageVersion()
{
var package = YooAssets.GetPackage(PackageName);
var operation = package.RequestPackageVersionAsync();
yield return operation;
if (operation.Status != EOperationStatus.Succeed)
{
Debug.LogWarning(operation.Error);
// PatchEventDefine.PackageVersionRequestFailed.SendEventMessage();
}
else
{
Debug.Log($"Request package version : {operation.PackageVersion}");
// _machine.SetBlackboardValue("PackageVersion", operation.PackageVersion);
// _machine.ChangeState<FsmUpdatePackageManifest>();
packageVersion = operation.PackageVersion;
yield return StartCoroutine(UpdateManifest());
}
}
string packageVersion;
#endregion
#region FsmUpdatePackageManifest
private IEnumerator UpdateManifest()
{
var package = YooAssets.GetPackage(PackageName);
var operation = package.UpdatePackageManifestAsync(packageVersion);
yield return operation;
if (operation.Status != EOperationStatus.Succeed)
{
Debug.LogWarning(operation.Error);
// PatchEventDefine.PackageManifestUpdateFailed.SendEventMessage();
yield break;
}
else
{
// _machine.ChangeState<FsmCreateDownloader>();
}
}
#endregion
} }

View File

@ -1,7 +1,7 @@
{ {
"FileVersion": "1.0.0", "FileVersion": "1.0.0",
"PackageName": "DefaultPackage", "PackageName": "DefaultPackage",
"PackageVersion": "2025-05-23-977", "PackageVersion": "2025-05-23-1055",
"Wrappers": [ "Wrappers": [
{ {
"BundleGUID": "67c554f97d728406e71b28fe19fcddce", "BundleGUID": "67c554f97d728406e71b28fe19fcddce",

View File

@ -1 +1 @@
2025-05-23-977 2025-05-23-1055

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 7918dadf1d094b34b856510de1e1617e guid: 3a2d7c9ac6eef3645af59e9d5794c56c
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 610b84a701b1dc24ca49e05fd243395a guid: 429ce7074b5af8f4aa562698f86013ba
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData: