diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Editor/Bundle/BundleHelper.cs b/Assets/OxGFrame/AssetLoader/Scripts/Editor/Bundle/BundleHelper.cs index 647cf50a..eae3565d 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Editor/Bundle/BundleHelper.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Editor/Bundle/BundleHelper.cs @@ -1,14 +1,13 @@ using Newtonsoft.Json; using OxGFrame.AssetLoader.Bundle; +using OxGFrame.AssetLoader.Utility; +using System; using System.Collections.Generic; using System.IO; +using System.Linq; using UnityEditor; using UnityEngine; -using OxGFrame.AssetLoader.Utility; using YooAsset.Editor; -using YooAsset; -using System.Linq; -using System; namespace OxGFrame.AssetLoader.Editor { diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/AssetPatcher.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/AssetPatcher.cs index 64c01049..6ad9310c 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/AssetPatcher.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/AssetPatcher.cs @@ -2,6 +2,7 @@ using OxGFrame.AssetLoader.Bundle; using OxGFrame.AssetLoader.Utility; using System.Collections.Generic; +using UnityEngine; using YooAsset; using static OxGFrame.AssetLoader.Utility.DownloadSpeedCalculator; using static YooAsset.DownloaderOperation; @@ -183,10 +184,9 @@ public static string GetAppVersion() /// public static string GetPatchVersion(bool encode = false, int encodeLength = 6, string separator = "-") { - string patchVersion = (PatchManager.patchVersions != null && - PatchManager.patchVersions.Length > 0) ? - PatchManager.patchVersions[0] : - string.Empty; + string[] versions = PatchManager.patchVersions; + string newestVersion = BundleUtility.NewestPackageVersion(versions); + string patchVersion = string.IsNullOrEmpty(newestVersion) ? string.Empty : newestVersion; if (encode) { @@ -269,46 +269,18 @@ public static async UniTask InitAppPackage(AppPackageInfoWithBuild package /// public static async UniTask InitDlcPackage(DlcPackageInfoWithBuild packageInfo, bool autoUpdate = false) { - string hostServer = null; - string fallbackHostServer = null; - IBuildinQueryServices builtinQueryService = null; - IDeliveryQueryServices deliveryQueryService = null; - IDeliveryLoadServices deliveryLoadService = null; + string hostServer = packageInfo.hostServer; + string fallbackHostServer = packageInfo.fallbackHostServer; + IBuildinQueryServices builtinQueryService = packageInfo.builtinQueryService; + IDeliveryQueryServices deliveryQueryService = packageInfo.deliveryQueryService; + IDeliveryLoadServices deliveryLoadService = packageInfo.deliveryLoadService; // Host Mode or WebGL Mode if (BundleConfig.playMode == BundleConfig.PlayMode.HostMode || BundleConfig.playMode == BundleConfig.PlayMode.WebGLMode) { - hostServer = await BundleConfig.GetDlcHostServerUrl(packageInfo.packageName, packageInfo.dlcVersion, packageInfo.withoutPlatform); - fallbackHostServer = await BundleConfig.GetDlcFallbackHostServerUrl(packageInfo.packageName, packageInfo.dlcVersion, packageInfo.withoutPlatform); - builtinQueryService = new RequestBuiltinQuery(); - deliveryQueryService = new RequestDeliveryQuery(); - deliveryLoadService = new RequestDeliveryQuery(); - } - - return await PackageManager.InitPackage(packageInfo, autoUpdate, hostServer, fallbackHostServer, builtinQueryService, deliveryQueryService, deliveryLoadService); - } - - /// - /// Init dlc package (If PlayMode is HostMode will request from default host dlc path) - /// - /// - /// - /// - /// - /// - /// - public static async UniTask InitDlcPackage(DlcPackageInfoWithBuild packageInfo, bool autoUpdate = false, IBuildinQueryServices builtinQueryService = null, IDeliveryQueryServices deliveryQueryService = null, IDeliveryLoadServices deliveryLoadService = null) - { - string hostServer = null; - string fallbackHostServer = null; - - // Host Mode or WebGL Mode - if (BundleConfig.playMode == BundleConfig.PlayMode.HostMode || - BundleConfig.playMode == BundleConfig.PlayMode.WebGLMode) - { - hostServer = await BundleConfig.GetDlcHostServerUrl(packageInfo.packageName, packageInfo.dlcVersion, packageInfo.withoutPlatform); - fallbackHostServer = await BundleConfig.GetDlcFallbackHostServerUrl(packageInfo.packageName, packageInfo.dlcVersion, packageInfo.withoutPlatform); + hostServer = string.IsNullOrEmpty(hostServer) ? await BundleConfig.GetDlcHostServerUrl(packageInfo.packageName, packageInfo.dlcVersion, packageInfo.withoutPlatform) : hostServer; + fallbackHostServer = string.IsNullOrEmpty(fallbackHostServer) ? await BundleConfig.GetDlcFallbackHostServerUrl(packageInfo.packageName, packageInfo.dlcVersion, packageInfo.withoutPlatform) : fallbackHostServer; builtinQueryService = builtinQueryService == null ? new RequestBuiltinQuery() : builtinQueryService; deliveryQueryService = deliveryQueryService == null ? new RequestDeliveryQuery() : deliveryQueryService; deliveryLoadService = deliveryLoadService == null ? new RequestDeliveryQuery() : deliveryLoadService; @@ -318,24 +290,6 @@ public static async UniTask InitDlcPackage(DlcPackageInfoWithBuild package } #endregion - #region Custom Package - /// - /// Init package by package name (Custom your host path and query service) - /// - /// - /// - /// - /// - /// - /// - /// - /// - public static async UniTask InitCustomPackage(PackageInfoWithBuild packageInfo, string hostServer, string fallbackHostServer, bool autoUpdate, IBuildinQueryServices builtinQueryService, IDeliveryQueryServices deliveryQueryService, IDeliveryLoadServices deliveryLoadService) - { - return await PackageManager.InitPackage(packageInfo, autoUpdate, hostServer, fallbackHostServer, builtinQueryService, deliveryQueryService, deliveryLoadService); - } - #endregion - #region Update Package /// /// Update package manifest by package name diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleConfig.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleConfig.cs index 32e23e8c..d3d47027 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleConfig.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleConfig.cs @@ -62,7 +62,7 @@ public class CryptogramType /// /// 跳過 Patch 創建主要下載器階段 (強制邊玩邊下載) /// - public static bool skipCreateMainDownloder = false; + public static bool skipMainDownload = false; /// /// App Preset Package 清單 diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleInfos.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleInfos.cs index 26b8acb2..73601d6c 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleInfos.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/BundleInfos.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using UnityEngine; +using YooAsset; using static OxGFrame.AssetLoader.Bundle.BundleConfig; namespace OxGFrame.AssetLoader.Bundle @@ -54,11 +55,25 @@ public class GroupInfo } [Serializable] - public class PackageInfoWithBuild + public abstract class PackageInfoWithBuild { [Tooltip("Only for EditorSimulateMode")] public BuildMode buildMode; public string packageName; + + /// + /// Custom host server + /// + [HideInInspector] + public string hostServer = null; + /// + /// Custom fallback host server + /// + [HideInInspector] + public string fallbackHostServer = null; + public IBuildinQueryServices builtinQueryService = null; + public IDeliveryQueryServices deliveryQueryService = null; + public IDeliveryLoadServices deliveryLoadService = null; } [Serializable] diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageManager.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageManager.cs index d19b822e..26a81320 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageManager.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageManager.cs @@ -53,6 +53,7 @@ public async static UniTask InitSetup() #region Init Preset Packages bool appInitialized = await InitPresetAppPackages(); bool dlcInitialized = await InitPresetDlcPackages(); + Logging.Print($"{appInitialized} {dlcInitialized}"); isInitialized = dlcInitialized && appInitialized; #endregion @@ -133,9 +134,11 @@ public static async UniTask InitPackage(PackageInfoWithBuild packageInfo, var package = RegisterPackage(packageName); if (package.InitializeStatus == EOperationStatus.Succeed) { - if (autoUpdate) await UpdatePackage(packageName); + // updated state default is true + bool updated = true; + if (autoUpdate) updated = await UpdatePackage(packageName); Logging.Print($"Package: {packageName} is initialized. Status: {package.InitializeStatus}."); - return true; + return updated; } // Simulate Mode @@ -193,9 +196,11 @@ public static async UniTask InitPackage(PackageInfoWithBuild packageInfo, if (initializationOperation.Status == EOperationStatus.Succeed) { - if (autoUpdate) await UpdatePackage(packageName); + // updated state default is true + bool updated = true; + if (autoUpdate) updated = await UpdatePackage(packageName); Logging.Print($"Package: {packageName} Init completed successfully."); - return true; + return updated; } else { @@ -275,17 +280,17 @@ public static bool CheckPackageHasAnyFilesInLocal(string packageName) /// public static ulong GetPackageSizeInLocal(string packageName) { - if (BundleConfig.playMode == BundleConfig.PlayMode.EditorSimulateMode) - { - Logging.Print($"[{BundleConfig.PlayMode.EditorSimulateMode}] Get Package Size In Local return 1"); - return 1; - } - try { var package = GetPackage(packageName); if (package == null) return 0; + if (BundleConfig.playMode == BundleConfig.PlayMode.EditorSimulateMode) + { + Logging.Print($"[{BundleConfig.PlayMode.EditorSimulateMode}] Get Package Size In Local return 1"); + return 1; + } + string path = BundleConfig.GetLocalSandboxPackagePath(packageName); if (!Directory.Exists(path)) return 0; diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageOperation.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageOperation.cs new file mode 100644 index 00000000..937fe931 --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageOperation.cs @@ -0,0 +1,426 @@ +using OxGFrame.AssetLoader.PatchEvent; +using OxGFrame.AssetLoader.PatchFsm; +using OxGKit.LoggingSystem; +using System.Collections.Generic; +using UniFramework.Event; +using UniFramework.Machine; +using YooAsset; + +namespace OxGFrame.AssetLoader.Bundle +{ + public class PackageOperation + { + /// + /// Instance id + /// + public int hashId + { + get + { + // Return instance hash code + return this.GetHashCode(); + } + } + + /// + /// Package group info + /// + public GroupInfo groupInfo { get; protected set; } + + /// + /// Package operaion event group + /// + public EventGroup eventGroup { get; protected set; } + + /// + /// Skip download step + /// + public bool skipDownload { get; protected set; } + + private ResourceDownloaderOperation[] _downloaders; + private PackageInfoWithBuild[] _packageInfos; + + private bool _isReady = false; + private bool _isBegin = false; + private bool _isRepair = false; + private bool _isDone = false; + + private StateMachine _patchFsm; + + internal const string KEY_PACKAGE_VERSIONS = "packageVersions"; + + protected PackageOperation() + { + // 註冊 Events 監聽事件 + this.eventGroup = new EventGroup(this.hashId); + // Patch event receivers + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + // User event receivers + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + this.eventGroup.AddListener(this._OnHandleEventMessage); + + // 註冊 PatchFsm 處理流程 + this._patchFsm = new StateMachine(this); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + this._patchFsm.AddNode(); + } + + public PackageOperation(string groupName, PackageInfoWithBuild packageInfo, bool skipDownload = false) : this(groupName, new PackageInfoWithBuild[] { packageInfo }, skipDownload) + { + } + + public PackageOperation(string groupName, PackageInfoWithBuild[] packageInfos, bool skipDownload = false) : this() + { + this.groupInfo = new GroupInfo(); + this.groupInfo.groupName = groupName; + this._packageInfos = packageInfos; + this.skipDownload = skipDownload; + + // 開始 Package 初始流程 + this._patchFsm.Run(); + } + + ~PackageOperation() + { + this.Cancel(); + this.eventGroup.RemoveAllListener(); + this._patchFsm = null; + } + + #region Factory Mode + public static PackageOperation CreateOperation(string groupName, PackageInfoWithBuild packageInfo, bool skipDownload = false) + { + var packageOperation = new PackageOperation(groupName, packageInfo, skipDownload); + return packageOperation; + } + + public static PackageOperation CreateOperation(string groupName, PackageInfoWithBuild[] packageInfos, bool skipDownload = false) + { + var packageOperation = new PackageOperation(groupName, packageInfos, skipDownload); + return packageOperation; + } + #endregion + + #region Downloader + internal void SetDownloaders(ResourceDownloaderOperation[] downloaders) + { + this._downloaders = downloaders; + } + #endregion + + #region Package Info + internal PackageInfoWithBuild[] GetPackageInfos() + { + return this._packageInfos; + } + + internal string[] GetPackageNames() + { + List packageNames = new List(); + foreach (var packageInfo in this._packageInfos) + { + packageNames.Add(packageInfo.packageName); + } + return packageNames.ToArray(); + } + + internal ResourcePackage[] GetPackages() + { + if (this._packageInfos != null && this._packageInfos.Length > 0) + { + List packages = new List(); + foreach (var packageInfo in this._packageInfos) + { + var package = PackageManager.GetPackage(packageInfo.packageName); + if (package != null) packages.Add(package); + } + + return packages.ToArray(); + } + + return new ResourcePackage[] { }; + } + #endregion + + #region Patch Operation + /// + /// 開啟下載流程 + /// + public void Begin() + { + if (this._isReady && !this._isBegin && !this._isRepair) + { + this.MarkBeginState(); + this._patchFsm.Run(); + } + else + { + Logging.PrintWarning($"GroupName: {this.groupInfo.groupName} Patch maybe not ready yet or begin already..."); + } + } + + /// + /// 刪除所有緩存數據跟配置檔 (即清空下載目錄) + /// + public void Repair() + { + if (!this._isRepair) + { + this._patchFsm.Run(); + } + else + { + Logging.PrintWarning($"GroupName: {this.groupInfo.groupName} Patch repairing..."); + } + } + + /// + /// 暫停下載 + /// + public void Pause() + { + if (this._downloaders == null) return; + foreach (var downloader in this._downloaders) + { + downloader.PauseDownload(); + } + } + + /// + /// 繼續下載 + /// + public void Resume() + { + if (this._downloaders == null) return; + foreach (var downloader in this._downloaders) + { + downloader.ResumeDownload(); + } + } + + /// + /// 取消下載 + /// + public void Cancel(bool sendEvent = true) + { + if (this._downloaders == null) return; + foreach (var downloader in this._downloaders) + { + downloader.CancelDownload(); + } + if (sendEvent) PackageEvents.PatchDownloadCanceled.SendEventMessage(this.hashId); + this.MarkBeginAsDone(); + this.MarkRepairAsDone(); + } + #endregion + + #region Patch Flag + /// + /// 標記 Ready 狀態 + /// + internal void MarkReadyState() + { + this._isReady = true; + } + + /// + /// 標記 Ready 結束 + /// + internal void MarkReadyAsDone() + { + this._isReady = false; + } + + /// + /// 標記 Begin 狀態 + /// + internal void MarkBeginState() + { + this._isDone = false; + this._isBegin = true; + } + + /// + /// 標記 Begin 結束 + /// + internal void MarkBeginAsDone() + { + this._isBegin = false; + } + + /// + /// 標記 Repair 狀態 + /// + internal void MarkRepairState() + { + this._isDone = false; + this._isRepair = true; + } + + /// + /// 標記 Repair 結束 + /// + internal void MarkRepairAsDone() + { + this._isRepair = false; + this._downloaders = null; + } + + /// + /// 標記 Patch 結束 + /// + internal void MarkPatchAsDone() + { + this._isDone = true; + this._isBegin = false; + this._isRepair = false; + this._downloaders = null; + } + + /// + /// 是否更新結束 + /// + /// + public bool IsDone() + { + return this._isDone; + } + + /// + /// 是否開始準備 + /// + /// + public bool IsReady() + { + return this._isReady; + } + + /// + /// 是否開始下載 + /// + /// + public bool IsBegin() + { + return this._isBegin; + } + + /// + /// 是否開始修復 + /// + /// + public bool IsRepair() + { + return this._isRepair; + } + #endregion + + #region Event Handle + private void _OnHandleEventMessage(IEventMessage message) + { + // Package events + if (message is PackageEvents.PatchFsmState) + { +#if UNITY_EDITOR + PackageEvents.PatchFsmState msgData = message as PackageEvents.PatchFsmState; + + switch (msgData.stateNode) + { + case PackageFsmStates.FsmPatchRepair: + Logging.Print(" >>>> PackageFsmStates.FsmPatchRepair <<<< "); + break; + case PackageFsmStates.FsmPatchPrepare: + Logging.Print(" >>>> PackageFsmStates.FsmPatchPrepare <<<< "); + break; + case PackageFsmStates.FsmInitPatchMode: + Logging.Print(" >>>> PackageFsmStates.FsmInitPatchMode <<<< "); + break; + case PackageFsmStates.FsmPatchVersionUpdate: + Logging.Print(" >>>> PackageFsmStates.FsmPatchVersionUpdate <<<< "); + break; + case PackageFsmStates.FsmPatchManifestUpdate: + Logging.Print(" >>>> PackageFsmStates.FsmPatchManifestUpdate <<<< "); + break; + case PackageFsmStates.FsmCreateDownloader: + Logging.Print(" >>>> PackageFsmStates.FsmCreateDownloader <<<< "); + break; + case PackageFsmStates.FsmBeginDownload: + Logging.Print(" >>>> PackageFsmStates.FsmBeginDownloadFiles <<<< "); + break; + case PackageFsmStates.FsmDownloadOver: + Logging.Print(" >>>> PackageFsmStates.FsmDownloadOver <<<< "); + break; + case PackageFsmStates.FsmClearCache: + Logging.Print(" >>>> PackageFsmStates.FsmClearCache <<<< "); + break; + case PackageFsmStates.FsmPatchDone: + Logging.Print(" >>>> PackageFsmStates.FsmPatchDone <<<< "); + break; + } + +#endif + } + else if (message is PackageEvents.PatchRepairFailed) + { + PackageUserEvents.UserTryPatchRepair.SendEventMessage(this.hashId); + } + else if (message is PackageEvents.PatchInitPatchModeFailed) + { + PackageUserEvents.UserTryInitPatchMode.SendEventMessage(this.hashId); + } + else if (message is PackageEvents.PatchVersionUpdateFailed) + { + PackageUserEvents.UserTryPatchVersionUpdate.SendEventMessage(this.hashId); + } + else if (message is PackageEvents.PatchManifestUpdateFailed) + { + PackageUserEvents.UserTryPatchManifestUpdate.SendEventMessage(this.hashId); + } + else if (message is PackageEvents.PatchDownloadFailed) + { + PackageUserEvents.UserTryCreateDownloader.SendEventMessage(this.hashId); + } + // Package user events + else if (message is PackageUserEvents.UserTryPatchRepair) + { + this._patchFsm.ChangeState(); + } + else if (message is PackageUserEvents.UserTryInitPatchMode) + { + this._patchFsm.ChangeState(); + } + else if (message is PackageUserEvents.UserBeginDownload) + { + this._patchFsm.ChangeState(); + } + else if (message is PackageUserEvents.UserTryPatchVersionUpdate) + { + this._patchFsm.ChangeState(); + } + else if (message is PackageUserEvents.UserTryPatchManifestUpdate) + { + this._patchFsm.ChangeState(); + } + else if (message is PackageUserEvents.UserTryCreateDownloader) + { + this._patchFsm.ChangeState(); + } + } + #endregion + } +} \ No newline at end of file diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageOperation.cs.meta b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageOperation.cs.meta new file mode 100644 index 00000000..83754d2f --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PackageOperation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db0e44f99ffe37a449754a3b4c6e9d4c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageEvents.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageEvents.cs new file mode 100644 index 00000000..3926db74 --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageEvents.cs @@ -0,0 +1,134 @@ +using UniFramework.Event; +using UniFramework.Machine; + +namespace OxGFrame.AssetLoader.PatchEvent +{ + // 0. PatchRepairFailed + // 1. PatchFsmState + // 2. PatchInitPatchModeFailed + // 3. PatchVersionUpdateFailed + // 4. PatchManifestUpdateFailed + // 5. PatchDownloadProgression + // 6. PatchDownloadFailed + // 7. PatchDownloadCanceled + + public static class PackageEvents + { + /// + /// Patch repair failed + /// + internal class PatchRepairFailed : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new PatchRepairFailed(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// Patch fsm state + /// + public class PatchFsmState : IEventMessage + { + public IStateNode stateNode; + + public static void SendEventMessage(int groupId, IStateNode stateNode) + { + var msg = new PatchFsmState(); + msg.stateNode = stateNode; + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// Patch init default package failed + /// + internal class PatchInitPatchModeFailed : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new PatchInitPatchModeFailed(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// Patch version update failed + /// + internal class PatchVersionUpdateFailed : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new PatchVersionUpdateFailed(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// Patch manifest update failed + /// + internal class PatchManifestUpdateFailed : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new PatchManifestUpdateFailed(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// Patch download progression + /// + public class PatchDownloadProgression : IEventMessage + { + public float progress; + public int totalDownloadCount; + public int currentDownloadCount; + public long totalDownloadSizeBytes; + public long currentDownloadSizeBytes; + public long downloadSpeedBytes; + + public static void SendEventMessage(int groupId, int totalDownloadCount, int currentDownloadCount, long totalDownloadSizeBytes, long currentDownloadSizeBytes, long downloadSpeedBytes) + { + var msg = new PatchDownloadProgression(); + msg.totalDownloadCount = totalDownloadCount; + msg.currentDownloadCount = currentDownloadCount; + msg.totalDownloadSizeBytes = totalDownloadSizeBytes; + msg.currentDownloadSizeBytes = currentDownloadSizeBytes; + msg.downloadSpeedBytes = downloadSpeedBytes; + msg.progress = (msg.currentDownloadSizeBytes * 1f) / (msg.totalDownloadSizeBytes * 1f); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// Download file error + /// + internal class PatchDownloadFailed : IEventMessage + { + public string fileName; + public string error; + + public static void SendEventMessage(int groupId, string fileName, string error) + { + var msg = new PatchDownloadFailed(); + msg.fileName = fileName; + msg.error = error; + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// Download canceled + /// + public class PatchDownloadCanceled : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new PatchDownloadCanceled(); + UniEvent.SendMessage(groupId, msg); + } + } + } +} diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageEvents.cs.meta b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageEvents.cs.meta new file mode 100644 index 00000000..1ddc3cd6 --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageEvents.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1504fa54f4684c47ad53e2da6ce2100 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageUserEvents.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageUserEvents.cs new file mode 100644 index 00000000..e5ac4bf4 --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageUserEvents.cs @@ -0,0 +1,86 @@ +using UniFramework.Event; + +namespace OxGFrame.AssetLoader.PatchEvent +{ + // 0. UserTryPatchRepair + // 1. UserTryInitPatchMode + // 2. UserBeginDownload + // 3. UserTryPatchVersionUpdate + // 4. UserTryPatchManifestUpdate + // 5. UserTryCreateDownloader + + public static class PackageUserEvents + { + /// + /// User retry patch repair again + /// + internal class UserTryPatchRepair : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new UserTryPatchRepair(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// User retry init patch mode again + /// + internal class UserTryInitPatchMode : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new UserTryInitPatchMode(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// User begin download + /// + public class UserBeginDownload : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new UserBeginDownload(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// User retry update patch version again + /// + internal class UserTryPatchVersionUpdate : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new UserTryPatchVersionUpdate(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// User retry update patch manifest again + /// + internal class UserTryPatchManifestUpdate : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new UserTryPatchManifestUpdate(); + UniEvent.SendMessage(groupId, msg); + } + } + + /// + /// User retry download again + /// + internal class UserTryCreateDownloader : IEventMessage + { + public static void SendEventMessage(int groupId) + { + var msg = new UserTryCreateDownloader(); + UniEvent.SendMessage(groupId, msg); + } + } + } +} \ No newline at end of file diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageUserEvents.cs.meta b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageUserEvents.cs.meta new file mode 100644 index 00000000..768030dd --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PackageUserEvents.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8da3799a65001054bb7cab19b5714f7b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PatchUserEvents.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PatchUserEvents.cs index af86849f..62c0650c 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PatchUserEvents.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchEvent/PatchUserEvents.cs @@ -54,7 +54,7 @@ public static void SendEventMessage() /// public class UserBeginDownload : IEventMessage { - public static void SendEventMessage(GroupInfo groupInfo = null) + public static void SendEventMessage(GroupInfo groupInfo) { var msg = new UserBeginDownload(); PatchManager.SetLastGroupInfo(groupInfo); diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PackageFsmStates.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PackageFsmStates.cs new file mode 100644 index 00000000..0f348776 --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PackageFsmStates.cs @@ -0,0 +1,707 @@ +using Cysharp.Threading.Tasks; +using Newtonsoft.Json; +using OxGFrame.AssetLoader.Bundle; +using OxGFrame.AssetLoader.PatchEvent; +using OxGFrame.AssetLoader.Utility; +using OxGKit.LoggingSystem; +using System; +using System.Collections.Generic; +using UniFramework.Machine; +using YooAsset; + +namespace OxGFrame.AssetLoader.PatchFsm +{ + public static class PackageFsmStates + { + /// + /// 0. 修復流程 + /// + public class FsmPatchRepair : IStateNode + { + private StateMachine _machine; + private int _hashId; + private int _retryCount = _RETRY_COUNT; + + private const int _RETRY_COUNT = 1; + + public FsmPatchRepair() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 流程準備 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + (this._machine.Owner as PackageOperation).MarkRepairState(); + this._DeleteLocalSaveFiles().Forget(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private async UniTask _DeleteLocalSaveFiles() + { + // EditorSimulateMode skip repair + if (BundleConfig.playMode == BundleConfig.PlayMode.EditorSimulateMode) + { + this._machine.ChangeState(); + return; + } + + // Cancel main download first + (this._machine.Owner as PackageOperation).Cancel(false); + + // Wait a frame + await UniTask.NextFrame(); + + // Get package names + var packageNames = (this._machine.Owner as PackageOperation).GetPackageNames(); + + bool isCleared = false; + foreach (var packageName in packageNames) + { + // Clear cache and files of package + isCleared = await PackageManager.UnloadPackageAndClearCacheFiles(packageName); + if (!isCleared) break; + } + + if (isCleared || this._retryCount <= 0) + { + this._retryCount = _RETRY_COUNT; + this._machine.ChangeState(); + } + else + { + this._retryCount--; + PackageEvents.PatchRepairFailed.SendEventMessage(this._hashId); + } + } + } + + /// + /// 1. 流程準備工作 + /// + public class FsmPatchPrepare : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmPatchPrepare() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 流程準備 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + (this._machine.Owner as PackageOperation).MarkReadyAsDone(); + this._machine.ChangeState(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + } + + /// + /// 2. 初始 Patch Mode + /// + public class FsmInitPatchMode : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmInitPatchMode() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 初始更新資源配置 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + this._InitPatchMode().Forget(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private async UniTask _InitPatchMode() + { + await UniTask.Delay(TimeSpan.FromSeconds(0.1f), true); + + var packageInfos = (this._machine.Owner as PackageOperation).GetPackageInfos(); + if (packageInfos != null) + { + bool isInitialized = false; + foreach (var packageInfo in packageInfos) + { + string hostServer; + string fallbackHostServer; + IBuildinQueryServices builtinQueryService; + IDeliveryQueryServices deliveryQueryService; + IDeliveryLoadServices deliveryLoadService; + + if (packageInfo is DlcPackageInfoWithBuild) + { + var packageDetail = packageInfo as DlcPackageInfoWithBuild; + hostServer = packageDetail.hostServer; + fallbackHostServer = packageDetail.fallbackHostServer; + builtinQueryService = packageDetail.builtinQueryService; + deliveryQueryService = packageDetail.deliveryQueryService; + deliveryLoadService = packageDetail.deliveryLoadService; + + // Host Mode or WebGL Mode + if (BundleConfig.playMode == BundleConfig.PlayMode.HostMode || + BundleConfig.playMode == BundleConfig.PlayMode.WebGLMode) + { + hostServer = string.IsNullOrEmpty(hostServer) ? await BundleConfig.GetDlcHostServerUrl(packageDetail.packageName, packageDetail.dlcVersion, packageDetail.withoutPlatform) : hostServer; + fallbackHostServer = string.IsNullOrEmpty(fallbackHostServer) ? await BundleConfig.GetDlcFallbackHostServerUrl(packageDetail.packageName, packageDetail.dlcVersion, packageDetail.withoutPlatform) : fallbackHostServer; + builtinQueryService = builtinQueryService == null ? new RequestBuiltinQuery() : builtinQueryService; + deliveryQueryService = deliveryQueryService == null ? new RequestDeliveryQuery() : deliveryQueryService; + deliveryLoadService = deliveryLoadService == null ? new RequestDeliveryQuery() : deliveryLoadService; + } + } + else if (packageInfo is AppPackageInfoWithBuild) + { + var packageDetail = packageInfo as AppPackageInfoWithBuild; + hostServer = null; + fallbackHostServer = null; + builtinQueryService = null; + deliveryQueryService = null; + deliveryLoadService = null; + + // Host Mode or WebGL Mode + if (BundleConfig.playMode == BundleConfig.PlayMode.HostMode || + BundleConfig.playMode == BundleConfig.PlayMode.WebGLMode) + { + hostServer = await BundleConfig.GetHostServerUrl(packageDetail.packageName); + fallbackHostServer = await BundleConfig.GetFallbackHostServerUrl(packageDetail.packageName); + builtinQueryService = new RequestBuiltinQuery(); + deliveryQueryService = new RequestDeliveryQuery(); + deliveryLoadService = new RequestDeliveryQuery(); + } + } + else throw new Exception("Package info type error."); + + isInitialized = await PackageManager.InitPackage(packageInfo, false, hostServer, fallbackHostServer, builtinQueryService, deliveryQueryService, deliveryLoadService); + if (!isInitialized) + { + PackageEvents.PatchInitPatchModeFailed.SendEventMessage(this._hashId); + break; + } + } + + if (isInitialized) + { + this._machine.ChangeState(); + Logging.Print("(Init) Init Patch"); + } + else + { + PackageEvents.PatchInitPatchModeFailed.SendEventMessage(this._hashId); + } + } + else throw new Exception("Cannot get package infos (NULL)."); + } + } + + /// + /// 3. 更新 Patch Version + /// + public class FsmPatchVersionUpdate : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmPatchVersionUpdate() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 獲取最新的資源版本 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + (this._machine.Owner as PackageOperation).MarkRepairAsDone(); + this._UpdatePatchVersion().Forget(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private async UniTask _UpdatePatchVersion() + { + await UniTask.Delay(TimeSpan.FromSeconds(0.1f), true); + + // Get packages + var packages = (this._machine.Owner as PackageOperation).GetPackages(); + + bool succeed = false; + List patchVersions = new List(); + foreach (var package in packages) + { + var operation = package.UpdatePackageVersionAsync(); + await operation; + + if (operation.Status == EOperationStatus.Succeed) + { + succeed = true; + patchVersions.Add(operation.PackageVersion); + } + else + { + succeed = false; + PackageEvents.PatchVersionUpdateFailed.SendEventMessage(this._hashId); + Logging.Print($"Package: {package.PackageName} update version failed."); + break; + } + } + + if (succeed) + { + this._machine.SetBlackboardValue(PackageOperation.KEY_PACKAGE_VERSIONS, patchVersions.ToArray()); + this._machine.ChangeState(); + } + } + } + + /// + /// 4. 更新 Patch Manifest + /// + public class FsmPatchManifestUpdate : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmPatchManifestUpdate() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 更新資源清單 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + this._UpdatePatchManifest().Forget(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private async UniTask _UpdatePatchManifest() + { + await UniTask.Delay(TimeSpan.FromSeconds(0.1f), true); + + // Get packages + var packages = (this._machine.Owner as PackageOperation).GetPackages(); + var packageVersions = (string[])this._machine.GetBlackboardValue(PackageOperation.KEY_PACKAGE_VERSIONS); + + bool succeed = false; + for (int i = 0; i < packages.Length; i++) + { + var operation = packages[i].UpdatePackageManifestAsync(packageVersions[i]); + await operation; + + if (operation.Status == EOperationStatus.Succeed) + { + succeed = true; + operation.SavePackageVersion(); + Logging.Print($"Package: {packages[i].PackageName} Update completed successfully."); + } + else + { + succeed = false; + PackageEvents.PatchManifestUpdateFailed.SendEventMessage(this._hashId); + Logging.Print($"Package: {packages[i].PackageName} update manifest failed."); + break; + } + } + + if (succeed) this._machine.ChangeState(); + } + } + + /// + /// 5. 創建資源下載器 + /// + public class FsmCreateDownloader : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmCreateDownloader() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 創建資源下載器 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + this._CreateDownloader(); + (this._machine.Owner as PackageOperation).MarkReadyState(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private void _CreateDownloader() + { + // EditorSimulateMode or OfflineMode skip directly + if (BundleConfig.playMode == BundleConfig.PlayMode.EditorSimulateMode || + BundleConfig.playMode == BundleConfig.PlayMode.OfflineMode) + { + this._machine.ChangeState(); + return; + } + + #region Create Downloader by Tags + // Get packages + var packages = (this._machine.Owner as PackageOperation).GetPackages(); + var groupInfo = (this._machine.Owner as PackageOperation).groupInfo; + + // Reset group info + groupInfo.totalCount = 0; + groupInfo.totalBytes = 0; + + int totalDownloadCount; + long totalDownloadBytes; + for (int i = 0; i < packages.Length; i++) + { + var package = packages[i]; + + // all package + var downloader = package.CreateResourceDownloader(BundleConfig.maxConcurrencyDownloadCount, BundleConfig.failedRetryCount); + totalDownloadCount = downloader.TotalDownloadCount; + totalDownloadBytes = downloader.TotalDownloadBytes; + if (totalDownloadCount > 0) + { + groupInfo.totalCount += totalDownloadCount; + groupInfo.totalBytes += totalDownloadBytes; + } + } + #endregion + + if (groupInfo.totalCount > 0) + { + bool skipDownload = (this._machine.Owner as PackageOperation).skipDownload; + if (skipDownload) this._machine.ChangeState(); + else if ((this._machine.Owner as PackageOperation).IsBegin()) this._machine.ChangeState(); + + // 開始等待使用者選擇是否開始下載 + } + else + { + Logging.Print($"GroupName: {groupInfo.groupName} not found any download files!!!"); + this._machine.ChangeState(); + } + } + } + + /// + /// 6. 下載資源檔案 + /// + public class FsmBeginDownload : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmBeginDownload() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 下載資源檔案中 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + (this._machine.Owner as PackageOperation).MarkBeginState(); + this._StartDownload().Forget(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private async UniTask _StartDownload() + { + // Get packages + var packages = (this._machine.Owner as PackageOperation).GetPackages(); + + // Get last GroupInfo by UserEvent Set + GroupInfo lastGroupInfo = (this._machine.Owner as PackageOperation).groupInfo; + + Logging.Print($"Start Download Group Name: {lastGroupInfo?.groupName}, Tags: {JsonConvert.SerializeObject(lastGroupInfo?.tags)}"); + + List downloaders = new List(); + foreach (var package in packages) + { + if (lastGroupInfo != null) + { + if (lastGroupInfo.tags != null && lastGroupInfo.tags.Length > 0) downloaders.Add(package.CreateResourceDownloader(lastGroupInfo.tags, BundleConfig.maxConcurrencyDownloadCount, BundleConfig.failedRetryCount)); + else downloaders.Add(package.CreateResourceDownloader(BundleConfig.maxConcurrencyDownloadCount, BundleConfig.failedRetryCount)); + } + } + + // Set downloaders + (this._machine.Owner as PackageOperation).SetDownloaders(downloaders.ToArray()); + + // Combine all downloaders count and bytes + int totalCount = 0; + long totalBytes = 0; + foreach (var downloader in downloaders) + { + totalCount += downloader.TotalDownloadCount; + totalBytes += downloader.TotalDownloadBytes; + } + + // Begin Download + int currentCount = 0; + long currentBytes = 0; + var downloadSpeedCalculator = new DownloadSpeedCalculator(); + downloadSpeedCalculator.onDownloadSpeedProgress = ( + int totalDownloadCount, + int currentDownloadCount, + long totalDownloadBytes, + long currentDownloadBytes, + long downloadSpeedBytes) => + { + PackageEvents.PatchDownloadProgression.SendEventMessage( + this._hashId, + totalDownloadCount, + currentDownloadCount, + totalDownloadBytes, + currentDownloadBytes, + downloadSpeedBytes); + }; + foreach (var downloader in downloaders) + { + int lastCount = 0; + long lastBytes = 0; + downloader.OnDownloadErrorCallback = ( + string fileName, + string error) => + { + PackageEvents.PatchDownloadFailed.SendEventMessage( + this._hashId, + fileName, + error); + }; + downloader.OnDownloadProgressCallback = + ( + int totalDownloadCount, + int currentDownloadCount, + long totalDownloadBytes, + long currentDownloadBytes) => + { + currentCount += currentDownloadCount - lastCount; + lastCount = currentDownloadCount; + currentBytes += currentDownloadBytes - lastBytes; + lastBytes = currentDownloadBytes; + downloadSpeedCalculator.OnDownloadProgress(totalCount, currentCount, totalBytes, currentBytes); + }; + + downloader.BeginDownload(); + await downloader; + + if (downloader.Status != EOperationStatus.Succeed) return; + } + + this._machine.ChangeState(); + } + } + + /// + /// 7. 資源下載完成 + /// + public class FsmDownloadOver : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmDownloadOver() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 資源下載完成 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + this._DownloadOver().Forget(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private async UniTask _DownloadOver() + { + await UniTask.Delay(TimeSpan.FromSeconds(0.1f), true); + + // Get packages + var packages = (this._machine.Owner as PackageOperation).GetPackages(); + var groupInfo = (this._machine.Owner as PackageOperation).groupInfo; + + int packageTotalCount = 0; + ulong packageTotalSize = 0; + for (int i = 0; i < packages.Length; i++) + { + var package = packages[i]; + packageTotalSize += AssetPatcher.GetPackageSizeInLocal(package.PackageName); + packageTotalCount += 1; + } + + // Set packages total size + groupInfo.totalCount = packageTotalCount; + groupInfo.totalBytes = (long)packageTotalSize; + + this._machine.ChangeState(); + } + } + + /// + /// 8. 清理未使用的緩存文件 + /// + public class FsmClearCache : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmClearCache() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 清理未使用的緩存文件 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + this._ClearUnusedCache().Forget(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + + private async UniTask _ClearUnusedCache() + { + await UniTask.Delay(TimeSpan.FromSeconds(0.1f), true); + + // Get packages + var packages = (this._machine.Owner as PackageOperation).GetPackages(); + + foreach (var package in packages) + { + var operation = package.ClearUnusedCacheFilesAsync(); + await operation; + } + + this._machine.ChangeState(); + } + } + + /// + /// 9. 更新完畢 + /// + public class FsmPatchDone : IStateNode + { + private StateMachine _machine; + private int _hashId; + + public FsmPatchDone() { } + + void IStateNode.OnCreate(StateMachine machine) + { + this._machine = machine; + this._hashId = (this._machine.Owner as PackageOperation).hashId; + } + + void IStateNode.OnEnter() + { + // 更新完畢 + PackageEvents.PatchFsmState.SendEventMessage(this._hashId, this); + (this._machine.Owner as PackageOperation).MarkPatchAsDone(); + } + + void IStateNode.OnUpdate() + { + } + + void IStateNode.OnExit() + { + } + } + } +} diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PackageFsmStates.cs.meta b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PackageFsmStates.cs.meta new file mode 100644 index 00000000..c7c0d026 --- /dev/null +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PackageFsmStates.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f6e4a0d413df9a48ade0fa6ec4ff47f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PatchFsmStates.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PatchFsmStates.cs index cd09b948..cd580e25 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PatchFsmStates.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchFsm/PatchFsmStates.cs @@ -111,8 +111,6 @@ void IStateNode.OnEnter() { // 流程準備 PatchEvents.PatchFsmState.SendEventMessage(this); - // 不管怎樣都進行修復完成的標記 - PatchManager.GetInstance().MarkRepairAsDone(); PatchManager.GetInstance().MarkCheckState(); this._machine.ChangeState(); } @@ -375,22 +373,7 @@ private async UniTask _InitPatchMode() { await UniTask.Delay(TimeSpan.FromSeconds(0.1f), true); - if (PatchManager.GetInstance().IsRepair() && - PackageManager.isInitialized) - { - // SimulateMode and OfflineMode doesn't need to update patch version and manifest - if (BundleConfig.playMode == BundleConfig.PlayMode.EditorSimulateMode || - BundleConfig.playMode == BundleConfig.PlayMode.OfflineMode) - { - this._machine.ChangeState(); - return; - } - - this._machine.ChangeState(); - Logging.Print("(Repair) Repair Patch"); - return; - } - else if (PackageManager.isInitialized) + if (PackageManager.isInitialized) { this._machine.ChangeState(); Logging.Print("(Check) Check Patch"); @@ -428,6 +411,7 @@ void IStateNode.OnEnter() { // 獲取最新的資源版本 PatchEvents.PatchFsmState.SendEventMessage(this); + PatchManager.GetInstance().MarkRepairAsDone(); this._UpdatePatchVersion().Forget(); } @@ -514,11 +498,12 @@ private async UniTask _UpdatePatchManifest() var appPackages = PackageManager.GetPresetAppPackages(); var dlcPackages = PackageManager.GetPresetDlcPackages(); var packages = appPackages.Concat(dlcPackages).ToArray(); + var packageVersions = PatchManager.patchVersions; bool succeed = false; for (int i = 0; i < packages.Length; i++) { - var operation = packages[i].UpdatePackageManifestAsync(PatchManager.patchVersions[i]); + var operation = packages[i].UpdatePackageManifestAsync(packageVersions[i]); await operation; if (operation.Status == EOperationStatus.Succeed) @@ -538,7 +523,7 @@ private async UniTask _UpdatePatchManifest() if (succeed) { - if (BundleConfig.skipCreateMainDownloder) this._machine.ChangeState(); + if (BundleConfig.skipMainDownload) this._machine.ChangeState(); else this._machine.ChangeState(); } } @@ -562,6 +547,7 @@ void IStateNode.OnEnter() { // 創建資源下載器 PatchEvents.PatchFsmState.SendEventMessage(this); + if (!PatchManager.GetInstance().IsCheck()) PatchManager.GetInstance().MarkCheckState(); this._CreateDownloader().Forget(); } @@ -590,7 +576,7 @@ private async UniTask _CreateDownloader() GroupInfo lastGroupInfo = PatchManager.GetLastGroupInfo(); Logging.Print($"Get last GroupName: {lastGroupInfo?.groupName}"); - #region Create Downaloder by Tags + #region Create Downloader by Tags string url = await BundleConfig.GetHostServerPatchConfigPath(); string hostCfgJson = await Requester.RequestText(url, null, PatchEvents.PatchDownloadFailed.SendEventMessage, null, false); PatchConfig patchCfg = JsonConvert.DeserializeObject(hostCfgJson); @@ -749,9 +735,7 @@ private async UniTask _CreateDownloader() if (newGroupInfos.Count > 0) { Logging.Print($"Auto check last GroupName: {lastGroupInfo?.groupName}"); - Logging.Print($"Found total group {newGroupInfos.Count} to choose download =>\n{JsonConvert.SerializeObject(newGroupInfos)}"); - PatchEvents.PatchCreateDownloader.SendEventMessage(newGroupInfos.Values.ToArray()); // 開始等待使用者選擇是否開始下載 @@ -759,7 +743,6 @@ private async UniTask _CreateDownloader() else { Logging.Print($"GroupName: {lastGroupInfo?.groupName} not found any download files!!!"); - this._machine.ChangeState(); } } @@ -816,7 +799,7 @@ private async UniTask _StartDownload() } } - // Set Main Downloaders + // Set main downloaders PatchManager.GetInstance().mainDownloaders = mainDownloaders.ToArray(); // Combine all main downloaders count and bytes @@ -851,8 +834,8 @@ private async UniTask _StartDownload() lastBytes = currentDownloadBytes; downloadSpeedCalculator.OnDownloadProgress(totalCount, currentCount, totalBytes, currentBytes); }; - downloader.BeginDownload(); + downloader.BeginDownload(); await downloader; if (downloader.Status != EOperationStatus.Succeed) return; diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchLauncher.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchLauncher.cs index 141b0364..1819c830 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchLauncher.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchLauncher.cs @@ -61,7 +61,7 @@ private async void Awake() if (this.playMode == BundleConfig.PlayMode.HostMode) { BundleConfig.semanticRule = this.semanticRule; - BundleConfig.skipCreateMainDownloder = this.skipMainDownload; + BundleConfig.skipMainDownload = this.skipMainDownload; } // For WebGL Mode else if (this.playMode == BundleConfig.PlayMode.WebGLMode) diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchManager.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchManager.cs index e90550d7..2b7266ba 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchManager.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Bundle/PatchManager.cs @@ -65,37 +65,37 @@ public PatchManager() switch (msgData.stateNode) { case PatchFsmStates.FsmPatchRepair: - Logging.Print(" >>>> PatchFsmStates.FsmPatchRepair <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmPatchRepair <<<< "); break; case PatchFsmStates.FsmPatchPrepare: - Logging.Print(" >>>> PatchFsmStates.FsmPatchPrepare <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmPatchPrepare <<<< "); break; case PatchFsmStates.FsmAppVersionUpdate: - Logging.Print(" >>>> PatchFsmStates.FsmAppVersionUpdate <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmAppVersionUpdate <<<< "); break; case PatchFsmStates.FsmInitPatchMode: - Logging.Print(" >>>> PatchFsmStates.FsmInitPatchMode <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmInitPatchMode <<<< "); break; case PatchFsmStates.FsmPatchVersionUpdate: - Logging.Print(" >>>> PatchFsmStates.FsmPatchVersionUpdate <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmPatchVersionUpdate <<<< "); break; case PatchFsmStates.FsmPatchManifestUpdate: - Logging.Print(" >>>> PatchFsmStates.FsmPatchManifestUpdate <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmPatchManifestUpdate <<<< "); break; case PatchFsmStates.FsmCreateDownloader: - Logging.Print(" >>>> PatchFsmStates.FsmCreateDownloader <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmCreateDownloader <<<< "); break; case PatchFsmStates.FsmBeginDownload: - Logging.Print(" >>>> PatchFsmStates.FsmBeginDownloadFiles <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmBeginDownloadFiles <<<< "); break; case PatchFsmStates.FsmDownloadOver: - Logging.Print(" >>>> PatchFsmStates.FsmDownloadOver <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmDownloadOver <<<< "); break; case PatchFsmStates.FsmClearCache: - Logging.Print(" >>>> PatchFsmStates.FsmClearCache <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmClearCache <<<< "); break; case PatchFsmStates.FsmPatchDone: - Logging.Print(" >>>> PatchFsmStates.FsmPatchDone <<<< "); + Logging.Print(" >>>> PatchFsmStates.FsmPatchDone <<<< "); break; } }); @@ -126,6 +126,13 @@ public PatchManager() this._patchFsm.AddNode(); } + ~PatchManager() + { + this.Cancel(); + this._userEvents.RemoveAllListener(); + this._patchFsm = null; + } + #region Patch Operation /// /// 開啟檢查流程 @@ -138,7 +145,7 @@ public void Check() } else { - Logging.PrintWarning("Patch Checking..."); + Logging.PrintWarning("Patch checking..."); } } @@ -153,7 +160,7 @@ public void Repair() } else { - Logging.PrintWarning("Patch Repairing..."); + Logging.PrintWarning("Patch repairing..."); } } @@ -192,6 +199,8 @@ public void Cancel(bool sendEvent = true) downloader.CancelDownload(); } if (sendEvent) PatchEvents.PatchDownloadCanceled.SendEventMessage(); + this.MarkCheckAsDone(); + this.MarkRepairAsDone(); } #endregion @@ -205,6 +214,14 @@ public void MarkCheckState() this._isCheck = true; } + /// + /// 標記 Check 結束 + /// + public void MarkCheckAsDone() + { + this._isCheck = false; + } + /// /// 標記 Repair 狀態 /// @@ -215,21 +232,21 @@ public void MarkRepairState() } /// - /// 標記 Patch 結束 + /// 標記 Repair 結束 /// - public void MarkPatchAsDone() + public void MarkRepairAsDone() { - this._isDone = true; - this._isCheck = false; this._isRepair = false; this.mainDownloaders = null; } /// - /// 標記 Repair 結束 + /// 標記 Patch 結束 /// - public void MarkRepairAsDone() + public void MarkPatchAsDone() { + this._isDone = true; + this._isCheck = false; this._isRepair = false; this.mainDownloaders = null; } @@ -299,11 +316,5 @@ private void _OnHandleEventMessage(IEventMessage message) } } #endregion - - ~PatchManager() - { - this._userEvents.RemoveAllListener(); - this._patchFsm = null; - } } } diff --git a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Utility/BundleUtility.cs b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Utility/BundleUtility.cs index 1a9c01ee..8adf4add 100644 --- a/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Utility/BundleUtility.cs +++ b/Assets/OxGFrame/AssetLoader/Scripts/Runtime/Utility/BundleUtility.cs @@ -7,6 +7,8 @@ using System.Threading; using System.Collections.Generic; using OxGKit.LoggingSystem; +using System.Linq; +using OxGFrame.AssetLoader.Bundle; namespace OxGFrame.AssetLoader.Utility { @@ -257,6 +259,41 @@ public static async UniTask RequestAndCopyFileFromStreamingAssets(string sourceF #endregion #region Version + /// + /// Get newest version + /// + /// + /// + public static string NewestPackageVersion(string[] versions) + { + if (versions == null || (versions != null && versions.Length == 0)) return string.Empty; + + #region Newest Filter + Dictionary packageVersions = new Dictionary(); + foreach (var version in versions) + { + if (string.IsNullOrEmpty(version) || + version.IndexOf('-') <= -1) continue; + + string major = version.Substring(0, version.LastIndexOf("-")); + string minor = version.Substring(version.LastIndexOf("-") + 1, version.Length - version.LastIndexOf("-") - 1); + + // yyyy-mm-dd + major = major.Trim().Replace("-", string.Empty); + // 24 h * 60 m = 1440 m (max is 4 num of digits) + minor = minor.Trim().PadLeft(4, '0'); + //Debug.Log($"Major Date: {major}, Minor Minute: {minor} => {major}{minor}"); + + string refineVersionName = $"{major}{minor}"; + if (decimal.TryParse(refineVersionName, out decimal value)) packageVersions.Add(version, value); + } + + string newestVersion = packageVersions.Count > 0 ? packageVersions.Aggregate((x, y) => x.Value > y.Value ? x : y).Key : string.Empty; + #endregion + + return newestVersion; + } + /// /// Get version hash /// diff --git a/Assets/OxGFrame/CHANGELOG.md b/Assets/OxGFrame/CHANGELOG.md index cdb2ad01..b65dea5e 100644 --- a/Assets/OxGFrame/CHANGELOG.md +++ b/Assets/OxGFrame/CHANGELOG.md @@ -1,5 +1,65 @@ # CHANGELOG +## [2.9.9] - 2023-12-18 +- Added PackageOperation feature, can download packages more easier (please checkout BundleDLCDemo). +```C# + // Factory Mode + public static PackageOperation CreateOperation(string groupName, PackageInfoWithBuild packageInfo, bool skipDownload = false) + public static PackageOperation CreateOperation(string groupName, PackageInfoWithBuild[] packageInfos, bool skipDownload = false) + + // Use Example + var packageOperations = new PackageOperation[] + { + new PackageOperation + ( + "DLC Package 1", + new DlcPackageInfoWithBuild() + { + buildMode = BuildMode.ScriptableBuildPipeline, + packageName = "DlcPackage", + dlcVersion = "latest" + }, + false + ), + new PackageOperation + ( + "DLC Pacakge 2", + new DlcPackageInfoWithBuild() + { + buildMode = BuildMode.ScriptableBuildPipeline, + packageName = "OtherPackage", + dlcVersion = "latest" + }, + false + ) + }; +``` +- Added BundleDLCDemo for operate PackageOperation. +- Modified params to PackageInfoWithBuild. +```C# + public abstract class PackageInfoWithBuild + { + [Tooltip("Only for EditorSimulateMode")] + public BuildMode buildMode; + public string packageName; + + /// + /// Custom host server + /// + [HideInInspector] + public string hostServer = null; + /// + /// Custom fallback host server + /// + [HideInInspector] + public string fallbackHostServer = null; + public IBuildinQueryServices builtinQueryService = null; + public IDeliveryQueryServices deliveryQueryService = null; + public IDeliveryLoadServices deliveryLoadService = null; + } +``` +- Removed method InitCustomPackage from AssetPatcher. + ## [2.9.8] - 2023-12-08 - Added Generate binding code rule (MethodType: Manual, Auto, default is Auto). ```C# diff --git a/Assets/OxGFrame/MediaFrame/Scripts/Runtime/Core/Implement/MediaBase.cs b/Assets/OxGFrame/MediaFrame/Scripts/Runtime/Core/Implement/MediaBase.cs index 0f890007..c25dbdd9 100644 --- a/Assets/OxGFrame/MediaFrame/Scripts/Runtime/Core/Implement/MediaBase.cs +++ b/Assets/OxGFrame/MediaFrame/Scripts/Runtime/Core/Implement/MediaBase.cs @@ -167,9 +167,8 @@ public virtual void SetEndEvent(Action endEvent) /// public virtual void OnRelease() { - this.mediaName = null; - //this.bundleName = null; this.assetName = null; + this.mediaName = null; this._mediaLength = 0f; this._currentLength = 0f; this._endEvent = null; diff --git a/Assets/OxGFrame/Samples~/BundleDLCDemo.meta b/Assets/OxGFrame/Samples~/BundleDLCDemo.meta new file mode 100644 index 00000000..92ed3eed --- /dev/null +++ b/Assets/OxGFrame/Samples~/BundleDLCDemo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bd94bf871c20fa94b9842dbb95ae5a05 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/Samples~/BundleDLCDemo/BundleDLCDemo.unity b/Assets/OxGFrame/Samples~/BundleDLCDemo/BundleDLCDemo.unity new file mode 100644 index 00000000..a3015a91 --- /dev/null +++ b/Assets/OxGFrame/Samples~/BundleDLCDemo/BundleDLCDemo.unity @@ -0,0 +1,6263 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &52105993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 52105994} + - component: {fileID: 52105996} + - component: {fileID: 52105995} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &52105994 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52105993} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1990000096} + m_Father: {fileID: 1546549033} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &52105995 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52105993} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &52105996 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 52105993} + m_CullTransparentMesh: 1 +--- !u!1 &117739117 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 117739118} + - component: {fileID: 117739120} + - component: {fileID: 117739119} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &117739118 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117739117} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 942876986} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &117739119 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117739117} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.68073237, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &117739120 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117739117} + m_CullTransparentMesh: 1 +--- !u!1 &134868441 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 134868442} + m_Layer: 5 + m_Name: ProgressGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &134868442 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 134868441} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1855075419} + - {fileID: 1370941817} + - {fileID: 520785769} + m_Father: {fileID: 705387328} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 44.505005} + m_SizeDelta: {x: 960, y: 89.01} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &218859106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 218859107} + - component: {fileID: 218859110} + - component: {fileID: 218859109} + - component: {fileID: 218859108} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &218859107 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218859106} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1683851492} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &218859108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218859106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &218859109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218859106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsBegin +--- !u!222 &218859110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 218859106} + m_CullTransparentMesh: 1 +--- !u!1 &298761248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 298761249} + - component: {fileID: 298761252} + - component: {fileID: 298761251} + - component: {fileID: 298761250} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &298761249 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298761248} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 471363149} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &298761250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298761248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &298761251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298761248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsBegin +--- !u!222 &298761252 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298761248} + m_CullTransparentMesh: 1 +--- !u!1 &306853279 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 306853280} + - component: {fileID: 306853282} + - component: {fileID: 306853281} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &306853280 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 306853279} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1464378108} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &306853281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 306853279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.68073237, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &306853282 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 306853279} + m_CullTransparentMesh: 1 +--- !u!1001 &380145766 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 5015912702362567905, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_Name + value: PatchLauncher + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567918, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: playMode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: decryptArgs + value: aes,aes_key_michaelO_birthday1125,birthday1125 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: skipMainDownload + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: semanticRule.patch + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: semanticRule._patch + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: skipPatchDownloadStep + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listPackage.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listPackages.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: skipCreateMainDownloder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: _decryptInfo._decryptArgs + value: NONE + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: _decryptInfo.secureMemory + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listPackage.Array.data[1] + value: HotfixPackage + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listAppPackages.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listDlcPackages.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listPackages.Array.data[0] + value: DefaultPackage + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listPackages.Array.data[1] + value: OtherPackage + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: breakpointFileSizeThreshold + value: 20971520 + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listDlcPackages.Array.data[0].dlcVersion + value: + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listAppPackages.Array.data[1].packageName + value: DefaultPackage + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listAppPackages.Array.data[2].packageName + value: OtherPackage + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listDlcPackages.Array.data[0].packageName + value: + objectReference: {fileID: 0} + - target: {fileID: 5015912702362567919, guid: 992bffa5c79679749861326baa5441c6, + type: 3} + propertyPath: listDlcPackages.Array.data[0].withoutPlatform + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 992bffa5c79679749861326baa5441c6, type: 3} +--- !u!1 &406124443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 406124444} + - component: {fileID: 406124446} + - component: {fileID: 406124445} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &406124444 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406124443} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2072024459} + m_Father: {fileID: 1671256113} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &406124445 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406124443} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &406124446 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 406124443} + m_CullTransparentMesh: 1 +--- !u!1 &428600411 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 428600412} + - component: {fileID: 428600415} + - component: {fileID: 428600414} + - component: {fileID: 428600413} + m_Layer: 5 + m_Name: CancelBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &428600412 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428600411} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1588311411} + m_Father: {fileID: 705387328} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -197.5, y: -50.5} + m_SizeDelta: {x: 125, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &428600413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428600411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 428600414} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &428600414 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428600411} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9811321, g: 0.64486116, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &428600415 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 428600411} + m_CullTransparentMesh: 1 +--- !u!1 &471363148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 471363149} + - component: {fileID: 471363150} + m_Layer: 5 + m_Name: BeginState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &471363149 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471363148} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1084668552} + - {fileID: 298761249} + m_Father: {fileID: 996682633} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &471363150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 471363148} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 1084668553} + toggleTransition: 0 + graphic: {fileID: 1382782285} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &507659296 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 507659297} + - component: {fileID: 507659299} + - component: {fileID: 507659298} + m_Layer: 5 + m_Name: StateToggles + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &507659297 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507659296} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1955078289} + - {fileID: 1683851492} + - {fileID: 837204696} + - {fileID: 1671256113} + m_Father: {fileID: 1325809837} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -50} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &507659298 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507659296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &507659299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507659296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 50 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 1 + m_ReverseArrangement: 0 +--- !u!1 &520785768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 520785769} + - component: {fileID: 520785772} + - component: {fileID: 520785771} + - component: {fileID: 520785770} + m_Layer: 5 + m_Name: patchInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &520785769 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520785768} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 134868442} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 19.5} + m_SizeDelta: {x: 271, y: 39} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &520785770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520785768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &520785771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520785768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Package Size: 00' +--- !u!222 &520785772 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 520785768} + m_CullTransparentMesh: 1 +--- !u!1 &560227808 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 560227809} + - component: {fileID: 560227812} + - component: {fileID: 560227811} + - component: {fileID: 560227810} + m_Layer: 5 + m_Name: BeginBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &560227809 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560227808} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1080031726} + m_Father: {fileID: 705387328} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -332.5, y: -50.5} + m_SizeDelta: {x: 125, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &560227810 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560227808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 560227811} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &560227811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560227808} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.7735849, b: 0.63542145, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &560227812 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 560227808} + m_CullTransparentMesh: 1 +--- !u!1 &611173463 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 611173464} + - component: {fileID: 611173467} + - component: {fileID: 611173466} + - component: {fileID: 611173465} + m_Layer: 5 + m_Name: DeleteBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &611173464 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 611173463} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 639958551} + m_Father: {fileID: 705387328} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -62.5, y: -50.5} + m_SizeDelta: {x: 125, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &611173465 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 611173463} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 611173466} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &611173466 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 611173463} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0.28477097, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &611173467 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 611173463} + m_CullTransparentMesh: 1 +--- !u!1 &623418968 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 623418969} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &623418969 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 623418968} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1396931519} + m_Father: {fileID: 1855075419} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &639022565 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 639022566} + - component: {fileID: 639022569} + - component: {fileID: 639022568} + - component: {fileID: 639022567} + m_Layer: 5 + m_Name: patchInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &639022566 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639022565} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1096993846} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 19.5} + m_SizeDelta: {x: 271, y: 39} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &639022567 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639022565} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &639022568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639022565} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Package Size: 00' +--- !u!222 &639022569 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639022565} + m_CullTransparentMesh: 1 +--- !u!1 &639958550 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 639958551} + - component: {fileID: 639958553} + - component: {fileID: 639958552} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &639958551 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639958550} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 611173464} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &639958552 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639958550} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Delete +--- !u!222 &639958553 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 639958550} + m_CullTransparentMesh: 1 +--- !u!1 &642204883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 642204884} + - component: {fileID: 642204887} + - component: {fileID: 642204886} + - component: {fileID: 642204885} + m_Layer: 5 + m_Name: CancelBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &642204884 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642204883} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1495822312} + m_Father: {fileID: 1325809837} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -197.5, y: -50.5} + m_SizeDelta: {x: 125, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &642204885 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642204883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 642204886} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &642204886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642204883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9811321, g: 0.64486116, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &642204887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642204883} + m_CullTransparentMesh: 1 +--- !u!1 &669971853 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 669971854} + - component: {fileID: 669971857} + - component: {fileID: 669971856} + - component: {fileID: 669971855} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &669971854 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669971853} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 705795399} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &669971855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669971853} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &669971856 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669971853} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsDone +--- !u!222 &669971857 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669971853} + m_CullTransparentMesh: 1 +--- !u!1 &678942805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 678942806} + - component: {fileID: 678942809} + - component: {fileID: 678942808} + - component: {fileID: 678942807} + m_Layer: 5 + m_Name: BeginBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &678942806 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 678942805} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1332041196} + m_Father: {fileID: 1325809837} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -332.5, y: -50.5} + m_SizeDelta: {x: 125, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &678942807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 678942805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 678942808} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &678942808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 678942805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.7735849, b: 0.63542145, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &678942809 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 678942805} + m_CullTransparentMesh: 1 +--- !u!1 &705387327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 705387328} + m_Layer: 5 + m_Name: D2_Group + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &705387328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705387327} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1134013814} + - {fileID: 996682633} + - {fileID: 611173464} + - {fileID: 428600412} + - {fileID: 560227809} + - {fileID: 134868442} + - {fileID: 1176204245} + m_Father: {fileID: 1525092496} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 960, y: 210} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &705795398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 705795399} + - component: {fileID: 705795400} + m_Layer: 5 + m_Name: DoneState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &705795399 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705795398} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1620355712} + - {fileID: 669971854} + m_Father: {fileID: 996682633} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &705795400 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705795398} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 1620355713} + toggleTransition: 0 + graphic: {fileID: 1640049697} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &837204695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 837204696} + - component: {fileID: 837204697} + m_Layer: 5 + m_Name: RepairState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &837204696 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837204695} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 942876986} + - {fileID: 2027386937} + m_Father: {fileID: 507659297} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &837204697 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837204695} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 942876987} + toggleTransition: 0 + graphic: {fileID: 117739119} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &942876985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 942876986} + - component: {fileID: 942876988} + - component: {fileID: 942876987} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &942876986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942876985} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 117739118} + m_Father: {fileID: 837204696} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &942876987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942876985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &942876988 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 942876985} + m_CullTransparentMesh: 1 +--- !u!1 &996682632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 996682633} + - component: {fileID: 996682635} + - component: {fileID: 996682634} + m_Layer: 5 + m_Name: StateToggles + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &996682633 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996682632} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1546549033} + - {fileID: 471363149} + - {fileID: 1909827314} + - {fileID: 705795399} + m_Father: {fileID: 705387328} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 275, y: -50} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &996682634 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996682632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &996682635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 996682632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 50 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 1 + m_ReverseArrangement: 0 +--- !u!1 &1074202647 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1074202648} + - component: {fileID: 1074202650} + - component: {fileID: 1074202649} + - component: {fileID: 1074202651} + m_Layer: 5 + m_Name: DlcName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1074202648 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074202647} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1325809837} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1074202649 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074202647} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: DLC Name +--- !u!222 &1074202650 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074202647} + m_CullTransparentMesh: 1 +--- !u!114 &1074202651 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074202647} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &1080031725 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1080031726} + - component: {fileID: 1080031728} + - component: {fileID: 1080031727} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1080031726 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1080031725} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 560227809} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1080031727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1080031725} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Begin +--- !u!222 &1080031728 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1080031725} + m_CullTransparentMesh: 1 +--- !u!1 &1084668551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1084668552} + - component: {fileID: 1084668554} + - component: {fileID: 1084668553} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1084668552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1084668551} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1382782284} + m_Father: {fileID: 471363149} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1084668553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1084668551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1084668554 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1084668551} + m_CullTransparentMesh: 1 +--- !u!1 &1096993845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1096993846} + m_Layer: 5 + m_Name: ProgressGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1096993846 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096993845} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1560299452} + - {fileID: 2064449105} + - {fileID: 639022566} + m_Father: {fileID: 1325809837} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 44.505005} + m_SizeDelta: {x: 960, y: 89.01} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1001 &1120686683 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3415422755630365936, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_Name + value: LoggingLauncher + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365937, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: loggerSetting + value: + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3415422755630365950, guid: 39c1e8f8b6463b041be46441ad8ef6b1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 39c1e8f8b6463b041be46441ad8ef6b1, type: 3} +--- !u!1 &1130928125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1130928126} + - component: {fileID: 1130928128} + - component: {fileID: 1130928127} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1130928126 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1130928125} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1431001782} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1130928127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1130928125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Delete +--- !u!222 &1130928128 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1130928125} + m_CullTransparentMesh: 1 +--- !u!1 &1134013813 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1134013814} + - component: {fileID: 1134013817} + - component: {fileID: 1134013816} + - component: {fileID: 1134013815} + m_Layer: 5 + m_Name: DlcName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1134013814 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1134013813} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 705387328} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1134013815 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1134013813} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1134013816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1134013813} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 35 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: DLC Name +--- !u!222 &1134013817 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1134013813} + m_CullTransparentMesh: 1 +--- !u!1 &1176204244 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1176204245} + - component: {fileID: 1176204248} + - component: {fileID: 1176204247} + - component: {fileID: 1176204246} + m_Layer: 5 + m_Name: DlcInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1176204245 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176204244} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 705387328} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 60} + m_SizeDelta: {x: 176, y: 33} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1176204246 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176204244} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1176204247 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176204244} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Package Info +--- !u!222 &1176204248 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176204244} + m_CullTransparentMesh: 1 +--- !u!1 &1220899403 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1220899406} + - component: {fileID: 1220899405} + - component: {fileID: 1220899404} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1220899404 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220899403} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018, + type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 +--- !u!114 &1220899405 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220899403} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1220899406 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220899403} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1267609142 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1267609143} + - component: {fileID: 1267609145} + - component: {fileID: 1267609144} + - component: {fileID: 1267609146} + m_Layer: 5 + m_Name: DlcInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1267609143 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1267609142} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1325809837} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 60} + m_SizeDelta: {x: 176, y: 33} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1267609144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1267609142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Package Info +--- !u!222 &1267609145 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1267609142} + m_CullTransparentMesh: 1 +--- !u!114 &1267609146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1267609142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!1 &1308132461 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1308132462} + - component: {fileID: 1308132464} + - component: {fileID: 1308132463} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1308132462 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308132461} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2085075156} + m_Father: {fileID: 1683851492} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1308132463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308132461} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1308132464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308132461} + m_CullTransparentMesh: 1 +--- !u!1 &1311406598 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1311406599} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1311406599 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1311406598} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1571326023} + m_Father: {fileID: 1560299452} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1320248549 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1320248552} + - component: {fileID: 1320248551} + - component: {fileID: 1320248550} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1320248550 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320248549} + m_Enabled: 1 +--- !u!20 &1320248551 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320248549} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1320248552 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1320248549} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1325809836 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1325809837} + m_Layer: 5 + m_Name: D1_Group + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1325809837 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1325809836} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1074202648} + - {fileID: 507659297} + - {fileID: 1431001782} + - {fileID: 642204884} + - {fileID: 678942806} + - {fileID: 1096993846} + - {fileID: 1267609143} + m_Father: {fileID: 1525092496} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 960, y: 210} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1332041195 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1332041196} + - component: {fileID: 1332041198} + - component: {fileID: 1332041197} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1332041196 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1332041195} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 678942806} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1332041197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1332041195} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Begin +--- !u!222 &1332041198 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1332041195} + m_CullTransparentMesh: 1 +--- !u!1 &1370941816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1370941817} + - component: {fileID: 1370941820} + - component: {fileID: 1370941819} + - component: {fileID: 1370941818} + m_Layer: 5 + m_Name: percentage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1370941817 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370941816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 134868442} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -28} + m_SizeDelta: {x: 198, y: 56} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &1370941818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370941816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1370941819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370941816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 5 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 000.00% +--- !u!222 &1370941820 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1370941816} + m_CullTransparentMesh: 1 +--- !u!1 &1374129590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1374129591} + - component: {fileID: 1374129593} + - component: {fileID: 1374129592} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1374129591 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1374129590} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1891376211} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1374129592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1374129590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.9118314, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1374129593 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1374129590} + m_CullTransparentMesh: 1 +--- !u!1 &1382782283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1382782284} + - component: {fileID: 1382782286} + - component: {fileID: 1382782285} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1382782284 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382782283} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1084668552} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1382782285 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382782283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0.23765755, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1382782286 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1382782283} + m_CullTransparentMesh: 1 +--- !u!1 &1396931518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1396931519} + - component: {fileID: 1396931521} + - component: {fileID: 1396931520} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1396931519 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1396931518} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 623418969} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1396931520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1396931518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1396931521 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1396931518} + m_CullTransparentMesh: 1 +--- !u!1 &1431001781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1431001782} + - component: {fileID: 1431001785} + - component: {fileID: 1431001784} + - component: {fileID: 1431001783} + m_Layer: 5 + m_Name: DeleteBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1431001782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431001781} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1130928126} + m_Father: {fileID: 1325809837} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -62.5, y: -50.5} + m_SizeDelta: {x: 125, y: 75} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1431001783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431001781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1431001784} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1431001784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431001781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0.28477097, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1431001785 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431001781} + m_CullTransparentMesh: 1 +--- !u!1 &1464378107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1464378108} + - component: {fileID: 1464378110} + - component: {fileID: 1464378109} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1464378108 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464378107} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 306853280} + m_Father: {fileID: 1909827314} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1464378109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464378107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1464378110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1464378107} + m_CullTransparentMesh: 1 +--- !u!1 &1495822311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1495822312} + - component: {fileID: 1495822314} + - component: {fileID: 1495822313} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1495822312 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1495822311} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 642204884} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1495822313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1495822311} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Cancel +--- !u!222 &1495822314 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1495822311} + m_CullTransparentMesh: 1 +--- !u!1 &1525092495 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1525092496} + - component: {fileID: 1525092498} + - component: {fileID: 1525092497} + m_Layer: 5 + m_Name: Layout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1525092496 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1525092495} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1325809837} + - {fileID: 705387328} + m_Father: {fileID: 1558505175} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1525092497 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1525092495} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1525092498 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1525092495} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 200 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 1 + m_ReverseArrangement: 0 +--- !u!1 &1546549032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1546549033} + - component: {fileID: 1546549034} + m_Layer: 5 + m_Name: ReadyState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1546549033 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546549032} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 52105994} + - {fileID: 2018766420} + m_Father: {fileID: 996682633} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1546549034 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1546549032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 52105995} + toggleTransition: 0 + graphic: {fileID: 1990000097} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &1558505171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1558505175} + - component: {fileID: 1558505174} + - component: {fileID: 1558505173} + - component: {fileID: 1558505172} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1558505172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558505171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1558505173 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558505171} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1558505174 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558505171} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1558505175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558505171} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1525092496} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1560299451 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1560299452} + - component: {fileID: 1560299455} + - component: {fileID: 1560299454} + - component: {fileID: 1560299453} + m_Layer: 5 + m_Name: bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1560299452 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560299451} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1311406599} + m_Father: {fileID: 1096993846} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 500, y: 20} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1560299453 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560299451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 1571326024} + m_HandleRect: {fileID: 1571326023} + m_Direction: 0 + m_Value: 0 + m_Size: 0 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1560299454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560299451} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1560299455 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1560299451} + m_CullTransparentMesh: 1 +--- !u!1 &1571326022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1571326023} + - component: {fileID: 1571326025} + - component: {fileID: 1571326024} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1571326023 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571326022} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1311406599} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1571326024 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571326022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1571326025 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571326022} + m_CullTransparentMesh: 1 +--- !u!1 &1588311410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1588311411} + - component: {fileID: 1588311413} + - component: {fileID: 1588311412} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1588311411 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588311410} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 428600412} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1588311412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588311410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Cancel +--- !u!222 &1588311413 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1588311410} + m_CullTransparentMesh: 1 +--- !u!1 &1620355711 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1620355712} + - component: {fileID: 1620355714} + - component: {fileID: 1620355713} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1620355712 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1620355711} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1640049696} + m_Father: {fileID: 705795399} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1620355713 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1620355711} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1620355714 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1620355711} + m_CullTransparentMesh: 1 +--- !u!1 &1640049695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1640049696} + - component: {fileID: 1640049698} + - component: {fileID: 1640049697} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1640049696 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1640049695} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1620355712} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1640049697 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1640049695} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 1, b: 0.18478084, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1640049698 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1640049695} + m_CullTransparentMesh: 1 +--- !u!1 &1671256112 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1671256113} + - component: {fileID: 1671256114} + m_Layer: 5 + m_Name: DoneState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1671256113 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1671256112} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 406124444} + - {fileID: 1975373191} + m_Father: {fileID: 507659297} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1671256114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1671256112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 406124445} + toggleTransition: 0 + graphic: {fileID: 2072024460} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &1683851491 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1683851492} + - component: {fileID: 1683851493} + m_Layer: 5 + m_Name: BeginState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1683851492 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1683851491} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1308132462} + - {fileID: 218859107} + m_Father: {fileID: 507659297} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1683851493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1683851491} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 1308132463} + toggleTransition: 0 + graphic: {fileID: 2085075157} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &1855075418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1855075419} + - component: {fileID: 1855075422} + - component: {fileID: 1855075421} + - component: {fileID: 1855075420} + m_Layer: 5 + m_Name: bar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1855075419 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855075418} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 623418969} + m_Father: {fileID: 134868442} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 500, y: 20} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1855075420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855075418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 1396931520} + m_HandleRect: {fileID: 1396931519} + m_Direction: 0 + m_Value: 0 + m_Size: 0 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1855075421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855075418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1855075422 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1855075418} + m_CullTransparentMesh: 1 +--- !u!1 &1861736869 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1861736871} + - component: {fileID: 1861736870} + m_Layer: 0 + m_Name: BundleDLCDemo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1861736870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861736869} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7c05c37554361f64e85f05c129c67300, type: 3} + m_Name: + m_EditorClassIdentifier: + pkgCtrlPanels: + - dlcName: {fileID: 1134013816} + readyState: {fileID: 1955078290} + beginState: {fileID: 1683851493} + repairState: {fileID: 837204697} + doneState: {fileID: 1671256114} + beginBtn: {fileID: 678942807} + cancelBtn: {fileID: 642204885} + repairBtn: {fileID: 1431001783} + progressGroup: {fileID: 1096993845} + progress: {fileID: 1560299453} + percentage: {fileID: 2064449107} + patchInfo: {fileID: 639022568} + dlcInfo: {fileID: 1267609144} + - dlcName: {fileID: 1074202649} + readyState: {fileID: 1546549034} + beginState: {fileID: 471363150} + repairState: {fileID: 1909827315} + doneState: {fileID: 705795400} + beginBtn: {fileID: 560227810} + cancelBtn: {fileID: 428600413} + repairBtn: {fileID: 611173465} + progressGroup: {fileID: 134868441} + progress: {fileID: 1855075420} + percentage: {fileID: 1370941819} + patchInfo: {fileID: 520785771} + dlcInfo: {fileID: 1176204247} +--- !u!4 &1861736871 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1861736869} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 307.01587, y: 1081.9905, z: -8.603216} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1891376210 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1891376211} + - component: {fileID: 1891376213} + - component: {fileID: 1891376212} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1891376211 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891376210} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1374129591} + m_Father: {fileID: 1955078289} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1891376212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891376210} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1792453, g: 0.1792453, b: 0.1792453, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1891376213 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1891376210} + m_CullTransparentMesh: 1 +--- !u!1 &1909827313 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1909827314} + - component: {fileID: 1909827315} + m_Layer: 5 + m_Name: RepairState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1909827314 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1909827313} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1464378108} + - {fileID: 2047041301} + m_Father: {fileID: 996682633} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1909827315 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1909827313} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 1464378109} + toggleTransition: 0 + graphic: {fileID: 306853281} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &1924338283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1924338284} + - component: {fileID: 1924338287} + - component: {fileID: 1924338286} + - component: {fileID: 1924338285} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1924338284 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924338283} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1955078289} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1924338285 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924338283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1924338286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924338283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsReady +--- !u!222 &1924338287 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924338283} + m_CullTransparentMesh: 1 +--- !u!1 &1955078288 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1955078289} + - component: {fileID: 1955078290} + m_Layer: 5 + m_Name: ReadyState + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1955078289 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955078288} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1891376211} + - {fileID: 1924338284} + m_Father: {fileID: 507659297} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1955078290 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1955078288} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 0 + m_TargetGraphic: {fileID: 1891376212} + toggleTransition: 0 + graphic: {fileID: 1374129592} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 +--- !u!1 &1975373190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1975373191} + - component: {fileID: 1975373194} + - component: {fileID: 1975373193} + - component: {fileID: 1975373192} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1975373191 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975373190} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1671256113} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1975373192 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975373190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &1975373193 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975373190} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsDone +--- !u!222 &1975373194 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1975373190} + m_CullTransparentMesh: 1 +--- !u!1 &1990000095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1990000096} + - component: {fileID: 1990000098} + - component: {fileID: 1990000097} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1990000096 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1990000095} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 52105994} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1990000097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1990000095} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0.9118314, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1990000098 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1990000095} + m_CullTransparentMesh: 1 +--- !u!1 &2018766419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2018766420} + - component: {fileID: 2018766423} + - component: {fileID: 2018766422} + - component: {fileID: 2018766421} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2018766420 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2018766419} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1546549033} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2018766421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2018766419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &2018766422 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2018766419} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsReady +--- !u!222 &2018766423 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2018766419} + m_CullTransparentMesh: 1 +--- !u!1 &2027386936 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2027386937} + - component: {fileID: 2027386940} + - component: {fileID: 2027386939} + - component: {fileID: 2027386938} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2027386937 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027386936} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 837204696} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2027386938 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027386936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &2027386939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027386936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsRepair +--- !u!222 &2027386940 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027386936} + m_CullTransparentMesh: 1 +--- !u!1 &2047041300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2047041301} + - component: {fileID: 2047041304} + - component: {fileID: 2047041303} + - component: {fileID: 2047041302} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2047041301 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047041300} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1909827314} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: 30} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2047041302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047041300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &2047041303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047041300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsRepair +--- !u!222 &2047041304 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2047041300} + m_CullTransparentMesh: 1 +--- !u!1 &2064449104 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2064449105} + - component: {fileID: 2064449108} + - component: {fileID: 2064449107} + - component: {fileID: 2064449106} + m_Layer: 5 + m_Name: percentage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2064449105 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2064449104} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1096993846} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -28} + m_SizeDelta: {x: 198, y: 56} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &2064449106 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2064449104} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &2064449107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2064449104} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 5 + m_MaxSize: 50 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 000.00% +--- !u!222 &2064449108 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2064449104} + m_CullTransparentMesh: 1 +--- !u!1 &2072024458 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2072024459} + - component: {fileID: 2072024461} + - component: {fileID: 2072024460} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2072024459 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072024458} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 406124444} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2072024460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072024458} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 1, b: 0.18478084, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2072024461 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2072024458} + m_CullTransparentMesh: 1 +--- !u!1 &2085075155 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2085075156} + - component: {fileID: 2085075158} + - component: {fileID: 2085075157} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2085075156 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085075155} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1308132462} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2085075157 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085075155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0.23765755, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2085075158 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085075155} + m_CullTransparentMesh: 1 diff --git a/Assets/OxGFrame/Samples~/BundleDLCDemo/BundleDLCDemo.unity.meta b/Assets/OxGFrame/Samples~/BundleDLCDemo/BundleDLCDemo.unity.meta new file mode 100644 index 00000000..4e6afa2e --- /dev/null +++ b/Assets/OxGFrame/Samples~/BundleDLCDemo/BundleDLCDemo.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1ece66c418b3df6488a09fb140fa58ab +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts.meta b/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts.meta new file mode 100644 index 00000000..d2c120bf --- /dev/null +++ b/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41a424a49cc98b441ba0c1a0f9ac0ed5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts/BundleDLCDemo.cs b/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts/BundleDLCDemo.cs new file mode 100644 index 00000000..da762b7f --- /dev/null +++ b/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts/BundleDLCDemo.cs @@ -0,0 +1,185 @@ +using OxGFrame.AssetLoader; +using OxGFrame.AssetLoader.Bundle; +using OxGFrame.AssetLoader.PatchEvent; +using OxGFrame.AssetLoader.PatchFsm; +using OxGFrame.AssetLoader.Utility; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using static OxGFrame.AssetLoader.Bundle.BundleConfig; + +public class BundleDLCDemo : MonoBehaviour +{ + [Serializable] + public class PkgCtrlPanel + { + public Text dlcName; + public Toggle readyState; + public Toggle beginState; + public Toggle repairState; + public Toggle doneState; + public Button beginBtn; + public Button cancelBtn; + public Button repairBtn; + public GameObject progressGroup; + public Scrollbar progress; + public Text percentage; + public Text patchInfo; + public Text dlcInfo; + } + + public List pkgCtrlPanels = new List(); + + private PackageOperation[] _packageOperations; + private bool _isInitialized = false; + + private IEnumerator Start() + { + this._isInitialized = false; + + // Wait Until IsInitialized + while (!AssetPatcher.IsInitialized()) yield return null; + + // Create package operations + this._packageOperations = new PackageOperation[] + { + new PackageOperation + ( + "DLC Package 1", + new DlcPackageInfoWithBuild() + { + buildMode = BuildMode.ScriptableBuildPipeline, + packageName = "Dlc1Package", + dlcVersion = "latest" + }, + false + ), + new PackageOperation + ( + "DLC Pacakge 2", + new DlcPackageInfoWithBuild() + { + buildMode = BuildMode.ScriptableBuildPipeline, + packageName = "Dlc2Package", + dlcVersion = "latest" + }, + false + ) + }; + + // Init events and display + for (int i = 0; i < this._packageOperations.Length; i++) + { + int idx = i; + var packageOperation = this._packageOperations[idx]; + + // Show dlc name + this.pkgCtrlPanels[idx].dlcName.text = packageOperation.groupInfo.groupName; + + #region Btn events + // Begin download + this.pkgCtrlPanels[idx].beginBtn.onClick.RemoveAllListeners(); + this.pkgCtrlPanels[idx].beginBtn.onClick.AddListener(() => + { + packageOperation.Begin(); + }); + + // Delete files + this.pkgCtrlPanels[idx].repairBtn.onClick.RemoveAllListeners(); + this.pkgCtrlPanels[idx].repairBtn.onClick.AddListener(() => + { + packageOperation.Repair(); + }); + + // Cancel download + this.pkgCtrlPanels[idx].cancelBtn.onClick.RemoveAllListeners(); + this.pkgCtrlPanels[idx].cancelBtn.onClick.AddListener(() => + { + packageOperation.Cancel(); + }); + #endregion + + #region Pacakge events + // Package state event + packageOperation.eventGroup.AddListener((message) => + { + if (message is PackageEvents.PatchFsmState) + { + PackageEvents.PatchFsmState msgData = message as PackageEvents.PatchFsmState; + switch (msgData.stateNode) + { + case PackageFsmStates.FsmPatchRepair: + break; + case PackageFsmStates.FsmPatchPrepare: + if (this.pkgCtrlPanels[idx].progressGroup.activeSelf) this.pkgCtrlPanels[idx].progressGroup.SetActive(false); + if (this.pkgCtrlPanels[idx].dlcInfo.gameObject.activeSelf) this.pkgCtrlPanels[idx].dlcInfo.gameObject.SetActive(false); + break; + case PackageFsmStates.FsmInitPatchMode: + break; + case PackageFsmStates.FsmPatchVersionUpdate: + break; + case PackageFsmStates.FsmPatchManifestUpdate: + break; + case PackageFsmStates.FsmCreateDownloader: + break; + case PackageFsmStates.FsmBeginDownload: + if (!this.pkgCtrlPanels[idx].progressGroup.activeSelf) this.pkgCtrlPanels[idx].progressGroup.SetActive(true); + break; + case PackageFsmStates.FsmDownloadOver: + break; + case PackageFsmStates.FsmClearCache: + break; + case PackageFsmStates.FsmPatchDone: + if (this.pkgCtrlPanels[idx].progressGroup.activeSelf) this.pkgCtrlPanels[idx].progressGroup.SetActive(false); + if (!this.pkgCtrlPanels[idx].dlcInfo.gameObject.activeSelf) this.pkgCtrlPanels[idx].dlcInfo.gameObject.SetActive(true); + this.pkgCtrlPanels[idx].dlcInfo.text = $"DLC Size: {BundleUtility.GetBytesToString((ulong)packageOperation.groupInfo.totalBytes)}, Skip Download: {packageOperation.skipDownload}"; + break; + } + } + }); + + // Download Progression event + packageOperation.eventGroup.AddListener((message) => + { + if (message is PackageEvents.PatchDownloadProgression) + { + var downloadInfo = message as PackageEvents.PatchDownloadProgression; + + this.pkgCtrlPanels[idx].progress.size = downloadInfo.progress; + this.pkgCtrlPanels[idx].percentage.text = (downloadInfo.progress * 100).ToString("f0") + "%"; + this.pkgCtrlPanels[idx].patchInfo.text = $"Patch Size: {BundleUtility.GetBytesToString((ulong)downloadInfo.totalDownloadSizeBytes)}"; + + Debug.Log($"{packageOperation.groupInfo.groupName}, Load => Progress: {downloadInfo.progress}, CurrentCount: {downloadInfo.currentDownloadCount}, TotalCount: {downloadInfo.totalDownloadCount}, TotalBytes: {downloadInfo.totalDownloadSizeBytes}"); + } + }); + + // Download cancel event + packageOperation.eventGroup.AddListener((message) => + { + if (message is PackageEvents.PatchDownloadCanceled) + { + Debug.Log($"{packageOperation.groupInfo.groupName} canceled."); + } + }); + #endregion + } + + this._isInitialized = true; + } + + private void Update() + { + if (!this._isInitialized) return; + + // Update states + for (int i = 0; i < this._packageOperations.Length; i++) + { + this.pkgCtrlPanels[i].readyState.isOn = this._packageOperations[i].IsReady(); + this.pkgCtrlPanels[i].beginState.isOn = this._packageOperations[i].IsBegin(); + this.pkgCtrlPanels[i].repairState.isOn = this._packageOperations[i].IsRepair(); + this.pkgCtrlPanels[i].doneState.isOn = this._packageOperations[i].IsDone(); + } + } +} diff --git a/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts/BundleDLCDemo.cs.meta b/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts/BundleDLCDemo.cs.meta new file mode 100644 index 00000000..4fb8df0b --- /dev/null +++ b/Assets/OxGFrame/Samples~/BundleDLCDemo/Scripts/BundleDLCDemo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c05c37554361f64e85f05c129c67300 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/OxGFrame/Samples~/BundleDemo/BundleDemo.unity b/Assets/OxGFrame/Samples~/BundleDemo/BundleDemo.unity index eea13a99..d02d544d 100644 --- a/Assets/OxGFrame/Samples~/BundleDemo/BundleDemo.unity +++ b/Assets/OxGFrame/Samples~/BundleDemo/BundleDemo.unity @@ -335,7 +335,7 @@ MonoBehaviour: m_PressedTrigger: Pressed m_SelectedTrigger: Selected m_DisabledTrigger: Disabled - m_Interactable: 1 + m_Interactable: 0 m_TargetGraphic: {fileID: 1524521256} toggleTransition: 0 graphic: {fileID: 770252346} @@ -5712,7 +5712,7 @@ MonoBehaviour: m_PressedTrigger: Pressed m_SelectedTrigger: Selected m_DisabledTrigger: Disabled - m_Interactable: 1 + m_Interactable: 0 m_TargetGraphic: {fileID: 1831777580} toggleTransition: 0 graphic: {fileID: 2014836933} @@ -6684,7 +6684,7 @@ MonoBehaviour: m_PressedTrigger: Pressed m_SelectedTrigger: Selected m_DisabledTrigger: Disabled - m_Interactable: 1 + m_Interactable: 0 m_TargetGraphic: {fileID: 1939654151} toggleTransition: 0 graphic: {fileID: 1529062192} diff --git a/Assets/OxGFrame/ThirdParty/UniFramework/UniEvent/Runtime/EventGroup.cs b/Assets/OxGFrame/ThirdParty/UniFramework/UniEvent/Runtime/EventGroup.cs index 26049bfd..75ec3555 100644 --- a/Assets/OxGFrame/ThirdParty/UniFramework/UniEvent/Runtime/EventGroup.cs +++ b/Assets/OxGFrame/ThirdParty/UniFramework/UniEvent/Runtime/EventGroup.cs @@ -4,45 +4,55 @@ namespace UniFramework.Event { - public class EventGroup - { - private readonly Dictionary>> _cachedListener = new Dictionary>>(); + public class EventGroup + { + private readonly Dictionary>> _cachedListener = new Dictionary>>(); + private int? _groupId = null; - /// - /// 添加一个监听 - /// - public void AddListener(System.Action listener) where TEvent : IEventMessage - { - System.Type eventType = typeof(TEvent); - if (_cachedListener.ContainsKey(eventType) == false) - _cachedListener.Add(eventType, new List>()); + public EventGroup() { } - if (_cachedListener[eventType].Contains(listener) == false) - { - _cachedListener[eventType].Add(listener); - UniEvent.AddListener(eventType, listener); - } - else - { - UniLogger.Warning($"Event listener is exist : {eventType}"); - } - } + public EventGroup(int groupId) + { + this._groupId = groupId; + } - /// - /// 移除所有缓存的监听 - /// - public void RemoveAllListener() - { - foreach (var pair in _cachedListener) - { - System.Type eventType = pair.Key; - for (int i = 0; i < pair.Value.Count; i++) - { - UniEvent.RemoveListener(eventType, pair.Value[i]); - } - pair.Value.Clear(); - } - _cachedListener.Clear(); - } - } + /// + /// 添加一个监听 + /// + public void AddListener(System.Action listener) where TEvent : IEventMessage + { + System.Type eventType = typeof(TEvent); + if (_cachedListener.ContainsKey(eventType) == false) + _cachedListener.Add(eventType, new List>()); + + if (_cachedListener[eventType].Contains(listener) == false) + { + _cachedListener[eventType].Add(listener); + if (this._groupId != null) UniEvent.AddListener((int)this._groupId, listener); + else UniEvent.AddListener(eventType, listener); + } + else + { + UniLogger.Warning($"Event listener is exist : {eventType}"); + } + } + + /// + /// 移除所有缓存的监听 + /// + public void RemoveAllListener() + { + foreach (var pair in _cachedListener) + { + System.Type eventType = pair.Key; + for (int i = 0; i < pair.Value.Count; i++) + { + if (this._groupId != null) UniEvent.RemoveListener((int)this._groupId, pair.Value[i]); + else UniEvent.RemoveListener(eventType, pair.Value[i]); + } + pair.Value.Clear(); + } + _cachedListener.Clear(); + } + } } \ No newline at end of file diff --git a/Assets/OxGFrame/package.json b/Assets/OxGFrame/package.json index 738f7fae..17a29e17 100644 --- a/Assets/OxGFrame/package.json +++ b/Assets/OxGFrame/package.json @@ -2,7 +2,7 @@ "name": "com.michaelo.oxgframe", "displayName": "OxGFrame", "description": "The OxGFrame is a framework based on Unity for accelerating game development. Supports multi-platform Win, OSX, Android, iOS, WebGL.", - "version": "2.9.8", + "version": "2.9.9", "unity": "2021.3", "license": "MIT", "samples": [ diff --git a/Assets/Settings/OxGFrame/BindCodeSetting.asset b/Assets/Settings/OxGFrame/BindCodeSetting.asset index 402ca640..68e46e65 100644 --- a/Assets/Settings/OxGFrame/BindCodeSetting.asset +++ b/Assets/Settings/OxGFrame/BindCodeSetting.asset @@ -15,10 +15,10 @@ MonoBehaviour: variableCaseType: 0 variableAccessModifier: protected variablePrefix: _ - methodType: 0 + methodType: 1 methodAccessModifier: protected methodPrefix: - methodName: InitBindingComponents + methodName: InitBind indicateModifier: 1 tailRules: list: diff --git a/Assets/Settings/YooAsset/AssetBundleCollectorSetting.asset b/Assets/Settings/YooAsset/AssetBundleCollectorSetting.asset index 12bea68e..822a41c4 100644 --- a/Assets/Settings/YooAsset/AssetBundleCollectorSetting.asset +++ b/Assets/Settings/YooAsset/AssetBundleCollectorSetting.asset @@ -197,3 +197,45 @@ MonoBehaviour: FilterRuleName: CollectAll AssetTags: UserData: + - PackageName: Dlc1Package + PackageDesc: + EnableAddressable: 1 + LocationToLower: 0 + IncludeAssetGUID: 0 + IgnoreDefaultType: 1 + AutoCollectShaders: 1 + Groups: + - GroupName: ModelGroup + GroupDesc: + AssetTags: models + ActiveRuleName: EnableGroup + Collectors: + - CollectPath: Assets/OxGFrame/Samples/BundleDemo/Prefabs/model_01.prefab + CollectorGUID: b4ea3356cddbd8b41926c28adefdfbc5 + CollectorType: 0 + AddressRuleName: AddressByFileName + PackRuleName: PackSeparately + FilterRuleName: CollectAll + AssetTags: + UserData: + - PackageName: Dlc2Package + PackageDesc: + EnableAddressable: 1 + LocationToLower: 0 + IncludeAssetGUID: 0 + IgnoreDefaultType: 1 + AutoCollectShaders: 1 + Groups: + - GroupName: ModelGroup + GroupDesc: + AssetTags: models + ActiveRuleName: EnableGroup + Collectors: + - CollectPath: Assets/OxGFrame/Samples/BundleDemo/Prefabs/model_01.prefab + CollectorGUID: b4ea3356cddbd8b41926c28adefdfbc5 + CollectorType: 0 + AddressRuleName: AddressByFileName + PackRuleName: PackSeparately + FilterRuleName: CollectAll + AssetTags: + UserData: diff --git a/README.md b/README.md index 3f969923..58fca6ec 100644 --- a/README.md +++ b/README.md @@ -239,6 +239,36 @@ https://github.com/michael811125/OxGFrame/assets/30960759/d84de519-6afd-4f32-b9c - 路徑不管平台 (.../CDN/\/DLC/Packages) - 支援特定版本 DLC package 的下載與 DLC package 卸載功能,需手動進行 AssetPatcher.InitDlcPackage,並且指定特定 dlcVersion,對於 dlcVersion 也可以單一固定 dlcVersion (ex: "latest"),變成只要 DLC 有更新就可以使用固定路徑進行更新。 +**使用 PackageOperation 進行 DLC 資源包的操作 (方便控管資源包)** +```C# + // Use Example + var packageOperations = new PackageOperation[] + { + new PackageOperation + ( + "DLC Package 1", + new DlcPackageInfoWithBuild() + { + buildMode = BuildMode.ScriptableBuildPipeline, + packageName = "DlcPackage", + dlcVersion = "latest" + }, + false + ), + new PackageOperation + ( + "DLC Pacakge 2", + new DlcPackageInfoWithBuild() + { + buildMode = BuildMode.ScriptableBuildPipeline, + packageName = "OtherPackage", + dlcVersion = "latest" + }, + false + ) + }; +``` + **App Package** ```C# // [Load asset and download from specific package (Export App Bundles for CDN)]