From b1c2b55b8f4f7607719c30417e56322635525310 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Wed, 28 Jun 2023 02:12:07 -0400 Subject: [PATCH] com.rest.blockadelabs 1.0.0 (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Initial Release! 🎉 --- .gitignore | 5 +- .../Assets/{Demo.meta => Skybox.meta} | 2 +- .../SkyboxSample.unity} | 18 +- .../Assets/Skybox/SkyboxSample.unity.meta | 7 + .../Documentation~/README.md | 69 +- .../Runtime/BlockadeLabsAuthInfo.cs | 2 + .../Runtime/BlockadeLabsBaseEndpoint.cs | 2 + .../Runtime/BlockadeLabsConfiguration.cs | 2 + .../Runtime/BlockadeLabsSettings.cs | 2 + .../Runtime/BlockadeLabsSettingsInfo.cs | 2 + .../Runtime/Skyboxes/SkyboxEndpoint.cs | 142 +- .../Runtime/Skyboxes/SkyboxHistory.cs | 30 + .../Runtime/Skyboxes/SkyboxHistory.cs.meta | 11 + .../Skyboxes/SkyboxHistoryParameters.cs | 88 + .../Skyboxes/SkyboxHistoryParameters.cs.meta | 11 + .../Runtime/Skyboxes/SkyboxInfo.cs | 66 +- .../Runtime/Skyboxes/SkyboxStyle.cs | 2 + .../Runtime/Skyboxes/SortOrder.cs | 10 + .../Runtime/Skyboxes/SortOrder.cs.meta | 11 + .../Runtime/Skyboxes/Status.cs | 15 + .../Runtime/Skyboxes/Status.cs.meta | 11 + .../BlockadeLabs.Samples.Skybox.asmdef} | 4 +- .../BlockadeLabs.Samples.Skybox.asmdef.meta} | 0 .../Samples~/Skybox/SkyboxBehaviour.cs} | 4 +- .../Samples~/Skybox/SkyboxBehaviour.cs.meta} | 0 .../Samples~/Skybox/SkyboxMaterial.mat} | 2 +- .../Samples~/Skybox/SkyboxMaterial.mat.meta} | 0 .../Samples~/Skybox/SkyboxSample.unity | 2832 +++++++++++++++++ .../Samples~/Skybox/SkyboxSample.unity.meta} | 0 .../Tests/TestFixture_00_Skyboxes.cs | 84 +- .../com.rest.blockadelabs/package.json | 14 +- .../ProjectSettings/EditorBuildSettings.asset | 2 +- README.md | 69 +- 33 files changed, 3463 insertions(+), 56 deletions(-) rename BlockadeLabs/Assets/{Demo.meta => Skybox.meta} (77%) rename BlockadeLabs/Assets/{Demo/SkyboxDemo.unity => Skybox/SkyboxSample.unity} (99%) create mode 100644 BlockadeLabs/Assets/Skybox/SkyboxSample.unity.meta create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs.meta create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs.meta create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs.meta create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs.meta rename BlockadeLabs/{Assets/Demo/BlockadeLabs.Demo.asmdef => Packages/com.rest.blockadelabs/Samples~/Skybox/BlockadeLabs.Samples.Skybox.asmdef} (85%) rename BlockadeLabs/{Assets/Demo/BlockadeLabs.Demo.asmdef.meta => Packages/com.rest.blockadelabs/Samples~/Skybox/BlockadeLabs.Samples.Skybox.asmdef.meta} (100%) rename BlockadeLabs/{Assets/Demo/SkyboxDemo.cs => Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxBehaviour.cs} (97%) rename BlockadeLabs/{Assets/Demo/SkyboxDemo.cs.meta => Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxBehaviour.cs.meta} (100%) rename BlockadeLabs/{Assets/Demo/SkyboxDemoMaterial.mat => Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxMaterial.mat} (99%) rename BlockadeLabs/{Assets/Demo/SkyboxDemoMaterial.mat.meta => Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxMaterial.mat.meta} (100%) create mode 100644 BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxSample.unity rename BlockadeLabs/{Assets/Demo/SkyboxDemo.unity.meta => Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxSample.unity.meta} (100%) diff --git a/.gitignore b/.gitignore index 1394e7b..866507b 100644 --- a/.gitignore +++ b/.gitignore @@ -82,8 +82,11 @@ _ReSharper.Caches artifacts/ StreamingAssets/ StreamingAssets.meta +BlockadeLabs/ProjectSettings/SceneTemplateSettings.json BlockadeLabs/Assets/Resources BlockadeLabs/Assets/Resources.meta BlockadeLabs/Assets/Plugins BlockadeLabs/Assets/Plugins.meta -BlockadeLabs/ProjectSettings/SceneTemplateSettings.json +BlockadeLabs/Assets/Samples.meta +BlockadeLabs/Assets/Samples/BlockadeLabs +BlockadeLabs/Assets/Samples/BlockadeLabs.meta diff --git a/BlockadeLabs/Assets/Demo.meta b/BlockadeLabs/Assets/Skybox.meta similarity index 77% rename from BlockadeLabs/Assets/Demo.meta rename to BlockadeLabs/Assets/Skybox.meta index 7160697..ee20bcc 100644 --- a/BlockadeLabs/Assets/Demo.meta +++ b/BlockadeLabs/Assets/Skybox.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e3d95f7c8ce80544a9e03bad73a9588f +guid: 70519f90c0276684997c88d5a16429ae folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/BlockadeLabs/Assets/Demo/SkyboxDemo.unity b/BlockadeLabs/Assets/Skybox/SkyboxSample.unity similarity index 99% rename from BlockadeLabs/Assets/Demo/SkyboxDemo.unity rename to BlockadeLabs/Assets/Skybox/SkyboxSample.unity index 975947a..916f725 100644 --- a/BlockadeLabs/Assets/Demo/SkyboxDemo.unity +++ b/BlockadeLabs/Assets/Skybox/SkyboxSample.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_IndirectSpecularColor: {r: 0.49975657, g: 0.49975657, b: 0.49975657, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -104,7 +104,7 @@ NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 2 + serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -117,7 +117,7 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 maxJobWorkers: 0 preserveTilesOutsideBounds: 0 debug: @@ -360,9 +360,17 @@ Camera: m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -1806,7 +1814,9 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 diff --git a/BlockadeLabs/Assets/Skybox/SkyboxSample.unity.meta b/BlockadeLabs/Assets/Skybox/SkyboxSample.unity.meta new file mode 100644 index 0000000..478c8ac --- /dev/null +++ b/BlockadeLabs/Assets/Skybox/SkyboxSample.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5b5b835902518404fa123a04aa90a0e3 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Documentation~/README.md b/BlockadeLabs/Packages/com.rest.blockadelabs/Documentation~/README.md index 45cd8b8..bdfa91e 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Documentation~/README.md +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Documentation~/README.md @@ -12,7 +12,7 @@ I am not affiliated with BlockadeLabs and an account with api access is required Requires Unity 2021.3 LTS or higher. -The recommended installation method is though the unity package manager and [OpenUPM](https://openupm.com/packages/com.openai.unity). +The recommended installation method is though the unity package manager and [OpenUPM](https://openupm.com/packages/com.rest.blockadelabs). ### Via Unity Package Manager and OpenUPM @@ -35,6 +35,7 @@ The recommended installation method is though the unity package manager and [Ope - Add package from git url: `https://github.com/RageAgainstThePixel/com.rest.blockadelabs.git#upm` > Note: this repo has dependencies on other repositories! You are responsible for adding these on your own. - [com.utilities.async](https://github.com/RageAgainstThePixel/com.utilities.async) + - [com.utilities.extensions](https://github.com/RageAgainstThePixel/com.utilities.extensions) - [com.utilities.rest](https://github.com/RageAgainstThePixel/com.utilities.rest) ## Documentation @@ -46,6 +47,10 @@ The recommended installation method is though the unity package manager and [Ope - [Get Skybox Styles](#get-skybox-styles) - [Generate Skybox](#generate-skybox) - [Get Skybox by Id](#get-skybox) + - [Delete Skybox by Id](#delete-skybox) + - [Get Skybox History](#get-skybox-history) + - [Cancel Skybox Generation](#cancel-skybox-generation) + - [Cancel All Pending Skybox Generations](#cancel-all-pending-skybox-generations) ### Authentication @@ -108,7 +113,7 @@ var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvi ### Skyboxes -#### [Get Skybox Styles](https://blockade.cloudshell.run/redoc#tag/skybox/operation/Get_Skybox_Styles_api_v1_skybox_styles_get) +#### [Get Skybox Styles](https://api-documentation.blockadelabs.com/api/skybox.html#get-skybox-styles) Returns the list of predefined styles that can influence the overall aesthetic of your skybox generation. @@ -122,23 +127,73 @@ foreach (var skyboxStyle in skyboxStyles) } ``` -#### [Generate Skybox](https://blockade.cloudshell.run/redoc#tag/skybox/operation/Generate_Skybox_api_v1_skybox_generate_post) +#### [Generate Skybox](https://api-documentation.blockadelabs.com/api/skybox.html#generate-skybox) -Generate a skybox image +Generate a skybox. ```csharp var api = new BlockadeLabsClient(); -var request = new SkyboxRequest("underwater", depth: true); +var request = new SkyboxRequest("mars", depth: true); var skyboxInfo = await api.SkyboxEndpoint.GenerateSkyboxAsync(request); skyboxMaterial.mainTexture = skyboxInfo.MainTexture; skyboxMaterial.depthTexture = skyboxInfo.DepthTexture; ``` -#### [Get Skybox](https://blockade.cloudshell.run/redoc#tag/skybox/operation/Get_Skybox_By_Id_api_v1_skybox_info__id__get) +#### [Get Skybox](https://api-documentation.blockadelabs.com/api/skybox.html#get-skybox-by-id) Returns the skybox metadata for the given skybox id. ```csharp -var skyboxInfo = await api.SkyboxEndpoint.GetSkyboxInfoAsync("skybox-id"); +var skyboxId = 42; +var skyboxInfo = await api.SkyboxEndpoint.GetSkyboxInfoAsync(skyboxId); Debug.Log($"Skybox: {result.Id} | {result.MainTextureUrl}"); +// Note: If you wish to use the returned skybox textures you'll need to additionally call await SkyboxInfo.LoadTexturesAsync(); before you can assign them to a material property. +await skyboxInfo.LoadTexturesAsync(); +skyboxMaterial.mainTexture = skyboxInfo.MainTexture; +skyboxMaterial.depthTexture = skyboxInfo.DepthTexture; +``` + +#### [Delete Skybox](https://api-documentation.blockadelabs.com/api/skybox.html#delete) + +Deletes a skybox by id. + +```csharp +var skyboxId = 42; +var result = await api.SkyboxEndpoint.DeleteSkyboxAsync(skybox); +// result == true +``` + +#### [Get Skybox History](https://api-documentation.blockadelabs.com/api/skybox.html#get-history) + +Gets the previously generated skyboxes. + +```csharp +var history = await api.SkyboxEndpoint.GetSkyboxHistoryAsync(); +Debug.Log($"Found {history.TotalCount} skyboxes"); + +foreach (var skybox in history.Skyboxes) +{ + Debug.Log($"{skybox.Id} {skybox.Title} status: {skybox.Status}"); +} +``` + +#### [Cancel Skybox Generation](https://api-documentation.blockadelabs.com/api/skybox.html#cancel-generation) + +Cancels a pending skybox generation request by id. + +```csharp +var skyboxId = 42; +var result = await CancelSkyboxGenerationAsync(skyboxId); +// result == true +``` + +> Note: This is automatically done when cancelling a skybox generation using cancellation token. + +#### [Cancel All Pending Skybox Generations](https://api-documentation.blockadelabs.com/api/skybox.html#cancel-all-pending-generations) + +Cancels ALL pending skybox generation requests. + +```csharp +var result = await api.SkyboxEndpoint.CancelAllPendingSkyboxGenerationsAsync(); +Debug.Log(result ? "All pending generations successfully cancelled" : "No pending generations"); ``` diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsAuthInfo.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsAuthInfo.cs index 579b4c2..47ecf09 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsAuthInfo.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsAuthInfo.cs @@ -1,3 +1,5 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using System; using System.Security.Authentication; using UnityEngine; diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsBaseEndpoint.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsBaseEndpoint.cs index 26b5867..4fc1179 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsBaseEndpoint.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsBaseEndpoint.cs @@ -1,3 +1,5 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using Utilities.WebRequestRest; namespace BlockadeLabs diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsConfiguration.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsConfiguration.cs index 2c9fa5d..0f0fa72 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsConfiguration.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsConfiguration.cs @@ -1,3 +1,5 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using UnityEngine; using Utilities.WebRequestRest.Interfaces; diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettings.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettings.cs index 6a35c2b..c37df37 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettings.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettings.cs @@ -1,3 +1,5 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using System.Linq; using UnityEngine; using Utilities.WebRequestRest.Interfaces; diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettingsInfo.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettingsInfo.cs index 88e5482..a751140 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettingsInfo.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/BlockadeLabsSettingsInfo.cs @@ -1,3 +1,5 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using System; using Utilities.WebRequestRest.Interfaces; diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxEndpoint.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxEndpoint.cs index 313eb77..e63f422 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxEndpoint.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxEndpoint.cs @@ -29,6 +29,28 @@ public SkyboxInfoRequest([JsonProperty("request")] SkyboxInfo skyboxInfo) public SkyboxInfo SkyboxInfo { get; } } + [Preserve] + private class SkyboxOperation + { + [Preserve] + [JsonConstructor] + public SkyboxOperation( + [JsonProperty("success")] string success, + [JsonProperty("error")] string error) + { + Success = success; + Error = error; + } + + [Preserve] + [JsonProperty("success")] + public string Success { get; } + + [Preserve] + [JsonProperty("Error")] + public string Error { get; } + } + public SkyboxEndpoint(BlockadeLabsClient client) : base(client) { } protected override string Root => string.Empty; @@ -40,8 +62,7 @@ public SkyboxEndpoint(BlockadeLabsClient client) : base(client) { } /// A list of s. public async Task> GetSkyboxStylesAsync(CancellationToken cancellationToken = default) { - var endpoint = GetUrl("skybox/styles"); - var response = await Rest.GetAsync(endpoint, parameters: new RestParameters(client.DefaultRequestHeaders), cancellationToken); + var response = await Rest.GetAsync(GetUrl("skybox/styles"), parameters: new RestParameters(client.DefaultRequestHeaders), cancellationToken); response.Validate(); return JsonConvert.DeserializeObject>(response.Body, client.JsonSerializationOptions); } @@ -102,11 +123,11 @@ public async Task GenerateSkyboxAsync(SkyboxRequest skyboxRequest, i while (!cancellationToken.IsCancellationRequested) { - await Task.Delay(pollingInterval ?? 3 * 1000, cancellationToken) + await Task.Delay(pollingInterval ?? 3 * 1000, CancellationToken.None) .ConfigureAwait(true); // Configure await to make sure we're still in Unity context - skyboxInfo = await GetSkyboxInfoAsync(skyboxInfo, cancellationToken); + skyboxInfo = await GetSkyboxInfoAsync(skyboxInfo, CancellationToken.None); - if (skyboxInfo.Status is "pending" or "processing") + if (skyboxInfo.Status is Status.Pending or Status.Processing or Status.Dispatched) { continue; } @@ -114,27 +135,24 @@ await Task.Delay(pollingInterval ?? 3 * 1000, cancellationToken) break; } - if (skyboxInfo.Status != "complete") + if (cancellationToken.IsCancellationRequested) { - throw new Exception($"Failed to generate skybox! {skyboxInfo.Id} -> {skyboxInfo.Status}\nError: {skyboxInfo.ErrorMessage}\n{skyboxInfo}"); + var cancelResult = await CancelSkyboxGenerationAsync(skyboxInfo, CancellationToken.None); + + if (!cancelResult) + { + throw new Exception($"Failed to cancel generation for {skyboxInfo.Id}"); + } } - var downloadTasks = new List(2) + cancellationToken.ThrowIfCancellationRequested(); + + if (skyboxInfo.Status != Status.Complete) { - Task.Run(async () => - { - skyboxInfo.MainTexture = await Rest.DownloadTextureAsync(skyboxInfo.MainTextureUrl, parameters: null, cancellationToken: cancellationToken); - }, cancellationToken), - Task.Run(async () => - { - if (!string.IsNullOrWhiteSpace(skyboxInfo.DepthTextureUrl)) - { - skyboxInfo.DepthTexture = await Rest.DownloadTextureAsync(skyboxInfo.DepthTextureUrl, parameters: null, cancellationToken: cancellationToken); - } - }, cancellationToken) - }; - - await Task.WhenAll(downloadTasks); + throw new Exception($"Failed to generate skybox! {skyboxInfo.Id} -> {skyboxInfo.Status}\nError: {skyboxInfo.ErrorMessage}\n{skyboxInfo}"); + } + + await skyboxInfo.LoadTexturesAsync(cancellationToken); return skyboxInfo; } @@ -150,5 +168,85 @@ public async Task GetSkyboxInfoAsync(int id, CancellationToken cance response.Validate(); return JsonConvert.DeserializeObject(response.Body, client.JsonSerializationOptions).SkyboxInfo; } + + /// + /// Deletes a skybox by id. + /// + /// The id of the skybox. + /// Optional, . + /// True, if skybox was successfully deleted. + public async Task DeleteSkyboxAsync(int id, CancellationToken cancellationToken = default) + { + var response = await Rest.DeleteAsync(GetUrl($"imagine/deleteImagine/{id}"), new RestParameters(client.DefaultRequestHeaders), cancellationToken); + response.Validate(); + var skyboxOp = JsonConvert.DeserializeObject(response.Body, client.JsonSerializationOptions); + + const string successStatus = "Item deleted successfully"; + + if (skyboxOp is not { Success: successStatus }) + { + throw new Exception($"Failed to cancel generation for skybox {id}!\n{skyboxOp?.Error}"); + } + + return skyboxOp.Success.Equals(successStatus); + } + + /// + /// Gets the previously generated skyboxes. + /// + /// Optional, . + /// Optional, . + /// . + public async Task GetSkyboxHistoryAsync(SkyboxHistoryParameters parameters = null, CancellationToken cancellationToken = default) + { + var historyRequest = parameters ?? new SkyboxHistoryParameters(); + var response = await Rest.GetAsync(GetUrl($"imagine/myRequests{historyRequest}"), parameters: new RestParameters(client.DefaultRequestHeaders), cancellationToken); + response.Validate(); + return JsonConvert.DeserializeObject(response.Body, client.JsonSerializationOptions); + } + + /// + /// Cancels a pending skybox generation request by id. + /// + /// The id of the skybox. + /// Optional, . + /// True, if generation was cancelled. + public async Task CancelSkyboxGenerationAsync(int id, CancellationToken cancellationToken = default) + { + var response = await Rest.DeleteAsync(GetUrl($"imagine/requests/{id}"), new RestParameters(client.DefaultRequestHeaders), cancellationToken); + response.Validate(); + var skyboxOp = JsonConvert.DeserializeObject(response.Body, client.JsonSerializationOptions); + + if (skyboxOp is not { Success: "true" }) + { + throw new Exception($"Failed to cancel generation for skybox {id}!\n{skyboxOp?.Error}"); + } + + return skyboxOp.Success.Equals("true"); + } + + /// + /// Cancels ALL pending skybox generation requests. + /// + /// Optional, . + public async Task CancelAllPendingSkyboxGenerationsAsync(CancellationToken cancellationToken = default) + { + var response = await Rest.DeleteAsync(GetUrl("imagine/requests/pending"), new RestParameters(client.DefaultRequestHeaders), cancellationToken); + response.Validate(); + var skyboxOp = JsonConvert.DeserializeObject(response.Body, client.JsonSerializationOptions); + + if (skyboxOp is not { Success: "true" }) + { + if (skyboxOp != null && + skyboxOp.Error.Contains("You don't have any pending")) + { + return false; + } + + throw new Exception($"Failed to cancel all pending skybox generations!\n{skyboxOp?.Error}"); + } + + return skyboxOp.Success.Equals("true"); + } } } diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs new file mode 100644 index 0000000..746e70e --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs @@ -0,0 +1,30 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace BlockadeLabs.Skyboxes +{ + public sealed class SkyboxHistory + { + [JsonConstructor] + public SkyboxHistory( + [JsonProperty("data")] List skyboxes, + [JsonProperty("totalCount")] int totalCount, + [JsonProperty("has_more")] bool hasMore) + { + Skyboxes = skyboxes; + TotalCount = totalCount; + HasMore = hasMore; + } + + [JsonProperty("data")] + public IReadOnlyList Skyboxes { get; } + + [JsonProperty("totalCount")] + public int TotalCount { get; } + + [JsonProperty("has_more")] + public bool HasMore { get; } + } +} diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs.meta new file mode 100644 index 0000000..7d863a7 --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ba4e2baa62712dc4db4003ce7b99184f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: c0cdfd8ee0b46544aa66ab20cde3ddd1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs new file mode 100644 index 0000000..2e90183 --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs @@ -0,0 +1,88 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + +using System.Collections.Generic; +using UnityEngine.Networking; + +namespace BlockadeLabs.Skyboxes +{ + public sealed class SkyboxHistoryParameters + { + /// + /// Filter by status.
+ /// Options: all, pending, dispatched, processing, complete, abort, error (default: all) + ///
+ public Status? StatusFilter { get; set; } + + /// + /// Number of items to be returned per page (default: 18) + /// + public int? Limit { get; set; } + + /// + /// Page number (default: 0) + /// + public int? Offset { get; set; } + + /// + /// Sort order. Options: ASC, DESC (default: DESC) + /// + public SortOrder? Order { get; set; } + + /// + /// Filter by id + /// + public int? ImagineId { get; set; } + + /// + /// Filter by title or prompt + /// + public string QueryFilter { get; set; } + + /// + /// Filter by generator + /// + public string GeneratorFilter { get; set; } + + public override string ToString() + { + var @params = new List(); + + if (StatusFilter.HasValue) + { + @params.Add($"status={StatusFilter.ToString().ToLower()}"); + } + + if (Limit.HasValue) + { + @params.Add($"limit={Limit}"); + } + + if (Offset.HasValue) + { + @params.Add($"offset={Offset}"); + } + + if (Order.HasValue) + { + @params.Add($"order={Order.ToString().ToUpper()}"); + } + + if (ImagineId.HasValue) + { + @params.Add($"imagine_id={ImagineId}"); + } + + if (!string.IsNullOrWhiteSpace(QueryFilter)) + { + @params.Add($"query={UnityWebRequest.EscapeURL(QueryFilter)}"); + } + + if (!string.IsNullOrWhiteSpace(GeneratorFilter)) + { + @params.Add($"generator={UnityWebRequest.EscapeURL(GeneratorFilter)}"); + } + + return @params.Count == 0 ? string.Empty : $"?{string.Join('&', @params)}"; + } + } +} diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs.meta new file mode 100644 index 0000000..1fd9c56 --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxHistoryParameters.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09adeea789f34bf499c4aef0428609f3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: c0cdfd8ee0b46544aa66ab20cde3ddd1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxInfo.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxInfo.cs index ece1607..6cd8ba0 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxInfo.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxInfo.cs @@ -1,6 +1,13 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using Newtonsoft.Json; +using Newtonsoft.Json.Converters; using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; using UnityEngine; +using Utilities.WebRequestRest; namespace BlockadeLabs.Skyboxes { @@ -11,7 +18,8 @@ public SkyboxInfo( [JsonProperty("id")] int id, [JsonProperty("skybox_style_id")] int skyboxStyleId, [JsonProperty("skybox_style_name")] string skyboxStyleName, - [JsonProperty("status")] string status, + [JsonProperty("status")] Status status, + [JsonProperty("queue_position")] int queuePosition, [JsonProperty("type")] string type, [JsonProperty("file_url")] string mainTextureUrl, [JsonProperty("thumb_url")] string thumbUrl, @@ -20,12 +28,16 @@ public SkyboxInfo( [JsonProperty("obfuscated_id")] string obfuscatedId, [JsonProperty("created_at")] DateTime createdAt, [JsonProperty("updated_at")] DateTime updatedAt, + [JsonProperty("dispatched_at")] DateTime dispatchedAt, + [JsonProperty("processing_at")] DateTime processingAt, + [JsonProperty("completed_at")] DateTime completedAt, [JsonProperty("error_message")] string errorMessage = null) { Id = id; SkyboxStyleId = skyboxStyleId; SkyboxStyleName = skyboxStyleName; Status = status; + QueuePosition = queuePosition; Type = type; MainTextureUrl = mainTextureUrl; ThumbUrl = thumbUrl; @@ -34,6 +46,9 @@ public SkyboxInfo( ObfuscatedId = obfuscatedId; CreatedAt = createdAt; UpdatedAt = updatedAt; + DispatchedAt = dispatchedAt; + ProcessingAt = processingAt; + CompletedAt = completedAt; ErrorMessage = errorMessage; } @@ -47,7 +62,11 @@ public SkyboxInfo( public string SkyboxStyleName { get; } [JsonProperty("status")] - public string Status { get; } + [JsonConverter(typeof(StringEnumConverter))] + public Status Status { get; } + + [JsonProperty("queue_position")] + public int QueuePosition { get; } [JsonProperty("type")] public string Type { get; } @@ -82,11 +101,54 @@ public SkyboxInfo( [JsonProperty("updated_at")] public DateTime UpdatedAt { get; } + [JsonProperty("dispatched_at")] + public DateTime DispatchedAt { get; } + + [JsonProperty("processing_at")] + public DateTime ProcessingAt { get; } + + [JsonProperty("completed_at")] + public DateTime CompletedAt { get; } + [JsonProperty("error_message")] public string ErrorMessage { get; set; } public override string ToString() => JsonConvert.SerializeObject(this, Formatting.Indented); public static implicit operator int(SkyboxInfo skyboxInfo) => skyboxInfo.Id; + + /// + /// Loads the textures for this skybox. + /// + /// Optional, . + public async Task LoadTexturesAsync(CancellationToken cancellationToken = default) + { + var downloadTasks = new List(2) + { + Task.Run(async () => + { + if (!string.IsNullOrWhiteSpace(ThumbUrl)) + { + Thumbnail = await Rest.DownloadTextureAsync(ThumbUrl, parameters:null, cancellationToken: cancellationToken); + } + }, cancellationToken), + Task.Run(async () => + { + if (!string.IsNullOrWhiteSpace(MainTextureUrl)) + { + MainTexture = await Rest.DownloadTextureAsync(MainTextureUrl, parameters: null, cancellationToken: cancellationToken); + } + }, cancellationToken), + Task.Run(async () => + { + if (!string.IsNullOrWhiteSpace(DepthTextureUrl)) + { + DepthTexture = await Rest.DownloadTextureAsync(DepthTextureUrl, parameters: null, cancellationToken: cancellationToken); + } + }, cancellationToken) + }; + + await Task.WhenAll(downloadTasks).ConfigureAwait(true); + } } } diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxStyle.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxStyle.cs index db3ee70..75b444c 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxStyle.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SkyboxStyle.cs @@ -1,3 +1,5 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using Newtonsoft.Json; namespace BlockadeLabs.Skyboxes diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs new file mode 100644 index 0000000..3d4003d --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs @@ -0,0 +1,10 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace BlockadeLabs.Skyboxes +{ + public enum SortOrder + { + Desc, + Asc + } +} diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs.meta new file mode 100644 index 0000000..dbde0ac --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/SortOrder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5c09ee417d46ebc45b144fd92d3af436 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: c0cdfd8ee0b46544aa66ab20cde3ddd1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs new file mode 100644 index 0000000..d4c1b0d --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs @@ -0,0 +1,15 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace BlockadeLabs.Skyboxes +{ + public enum Status + { + All, + Pending, + Dispatched, + Processing, + Complete, + Abort, + Error + } +} diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs.meta new file mode 100644 index 0000000..e236c06 --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Runtime/Skyboxes/Status.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 18ec4cd604feda247be86340deead032 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: c0cdfd8ee0b46544aa66ab20cde3ddd1, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/BlockadeLabs/Assets/Demo/BlockadeLabs.Demo.asmdef b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/BlockadeLabs.Samples.Skybox.asmdef similarity index 85% rename from BlockadeLabs/Assets/Demo/BlockadeLabs.Demo.asmdef rename to BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/BlockadeLabs.Samples.Skybox.asmdef index 9a39497..09a4d6a 100644 --- a/BlockadeLabs/Assets/Demo/BlockadeLabs.Demo.asmdef +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/BlockadeLabs.Samples.Skybox.asmdef @@ -1,6 +1,6 @@ { - "name": "BlockadeLabs.Demo", - "rootNamespace": "BlockadeLabs.Demo", + "name": "BlockadeLabs.Samples.Skybox", + "rootNamespace": "BlockadeLabs.Samples.Skybox", "references": [ "GUID:0e64303a4898a4d4ba94306e88e6c025", "GUID:a6609af893242c7438d701ddd4cce46a", diff --git a/BlockadeLabs/Assets/Demo/BlockadeLabs.Demo.asmdef.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/BlockadeLabs.Samples.Skybox.asmdef.meta similarity index 100% rename from BlockadeLabs/Assets/Demo/BlockadeLabs.Demo.asmdef.meta rename to BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/BlockadeLabs.Samples.Skybox.asmdef.meta diff --git a/BlockadeLabs/Assets/Demo/SkyboxDemo.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxBehaviour.cs similarity index 97% rename from BlockadeLabs/Assets/Demo/SkyboxDemo.cs rename to BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxBehaviour.cs index adbbc95..72f1ace 100644 --- a/BlockadeLabs/Assets/Demo/SkyboxDemo.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxBehaviour.cs @@ -10,9 +10,9 @@ using UnityEngine.UI; using Utilities.Extensions; -namespace BlockadeLabs.Demo +namespace BlockadeLabs.Samples.Skybox { - public class SkyboxDemo : MonoBehaviour + public class SkyboxBehaviour : MonoBehaviour { [SerializeField] private TMP_InputField promptInputField; diff --git a/BlockadeLabs/Assets/Demo/SkyboxDemo.cs.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxBehaviour.cs.meta similarity index 100% rename from BlockadeLabs/Assets/Demo/SkyboxDemo.cs.meta rename to BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxBehaviour.cs.meta diff --git a/BlockadeLabs/Assets/Demo/SkyboxDemoMaterial.mat b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxMaterial.mat similarity index 99% rename from BlockadeLabs/Assets/Demo/SkyboxDemoMaterial.mat rename to BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxMaterial.mat index 45e6e85..606d5a0 100644 --- a/BlockadeLabs/Assets/Demo/SkyboxDemoMaterial.mat +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxMaterial.mat @@ -7,7 +7,7 @@ Material: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: SkyboxDemoMaterial + m_Name: SkyboxMaterial m_Shader: {fileID: 108, guid: 0000000000000000f000000000000000, type: 0} m_ValidKeywords: [] m_InvalidKeywords: diff --git a/BlockadeLabs/Assets/Demo/SkyboxDemoMaterial.mat.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxMaterial.mat.meta similarity index 100% rename from BlockadeLabs/Assets/Demo/SkyboxDemoMaterial.mat.meta rename to BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxMaterial.mat.meta diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxSample.unity b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxSample.unity new file mode 100644 index 0000000..916f725 --- /dev/null +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxSample.unity @@ -0,0 +1,2832 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 2100000, guid: e671ac8eb3c6f6a4a97491eb29076e3b, type: 2} + 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.49975657, g: 0.49975657, b: 0.49975657, 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: 1 + 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: 3 + 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 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &41372776 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 41372777} + - component: {fileID: 41372780} + - component: {fileID: 41372779} + - component: {fileID: 41372778} + - component: {fileID: 41372781} + m_Layer: 5 + m_Name: PromptInputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &41372777 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41372776} + 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: 1 + m_Children: + - {fileID: 1795232782} + m_Father: {fileID: 1175833942} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &41372778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41372776} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, 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: 41372779} + m_TextViewport: {fileID: 1795232782} + m_TextComponent: {fileID: 1460347556} + m_Placeholder: {fileID: 463533643} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 1 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 24 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &41372779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41372776} + 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: 10911, 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 &41372780 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41372776} + m_CullTransparentMesh: 1 +--- !u!114 &41372781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41372776} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 256 + m_MinHeight: -1 + m_PreferredWidth: 512 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 2 +--- !u!1 &72969032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 72969035} + - component: {fileID: 72969034} + - component: {fileID: 72969033} + 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 &72969033 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72969032} + m_Enabled: 1 +--- !u!20 &72969034 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72969032} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.1764706, g: 0.1764706, b: 0.1764706, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + 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: 0 + 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 &72969035 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72969032} + 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: 1 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &200225031 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 200225032} + - component: {fileID: 200225034} + - component: {fileID: 200225033} + - component: {fileID: 200225035} + - component: {fileID: 200225036} + m_Layer: 5 + m_Name: MainPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &200225032 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200225031} + 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: 1 + m_Children: + - {fileID: 1612849246} + - {fileID: 1175833942} + - {fileID: 241954613} + m_Father: {fileID: 1093524933} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 16} + m_SizeDelta: {x: -32, y: 128} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &200225033 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200225031} + 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.21960786, g: 0.21960786, b: 0.21960786, a: 0.5019608} + 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: 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 &200225034 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200225031} + m_CullTransparentMesh: 1 +--- !u!114 &200225035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200225031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 512 + m_MinHeight: 128 + m_PreferredWidth: 512 + m_PreferredHeight: 128 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &200225036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 200225031} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 8 + m_Top: 8 + m_Bottom: 8 + m_ChildAlignment: 4 + m_Spacing: 8 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &241954612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 241954613} + m_Layer: 5 + m_Name: BottomPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &241954613 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241954612} + 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: 1 + m_Children: [] + m_Father: {fileID: 200225032} + 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.5, y: 0.5} +--- !u!1 &261906814 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 261906815} + - component: {fileID: 261906817} + - component: {fileID: 261906816} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &261906815 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 261906814} + 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: 1 + m_Children: [] + m_Father: {fileID: 638446756} + 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: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &261906816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 261906814} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &261906817 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 261906814} + m_CullTransparentMesh: 1 +--- !u!1 &280817754 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 280817755} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &280817755 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 280817754} + 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: 1 + m_Children: + - {fileID: 2006619345} + m_Father: {fileID: 1318909067} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &304151161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 304151164} + - component: {fileID: 304151163} + - component: {fileID: 304151162} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &304151162 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304151161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &304151163 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304151161} + 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 &304151164 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304151161} + 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: 1 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &463533640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 463533641} + - component: {fileID: 463533644} + - component: {fileID: 463533643} + - component: {fileID: 463533642} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &463533641 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463533640} + 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: 1 + m_Children: [] + m_Father: {fileID: 1795232782} + 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 &463533642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463533640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &463533643 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463533640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Create a new world by describing it... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2150773298 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &463533644 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 463533640} + m_CullTransparentMesh: 1 +--- !u!1 &517660783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 517660784} + 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 &517660784 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 517660783} + 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: 1 + m_Children: + - {fileID: 1625261307} + m_Father: {fileID: 914705824} + 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: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &545858271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 545858272} + - component: {fileID: 545858275} + - component: {fileID: 545858274} + - component: {fileID: 545858273} + - component: {fileID: 545858276} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &545858272 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545858271} + 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: 1 + m_Children: + - {fileID: 1570093186} + m_Father: {fileID: 1175833942} + 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.5, y: 0.5} +--- !u!114 &545858273 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545858271} + 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: 545858274} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &545858274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545858271} + 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 &545858275 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545858271} + m_CullTransparentMesh: 1 +--- !u!114 &545858276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545858271} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 128 + m_MinHeight: -1 + m_PreferredWidth: 128 + m_PreferredHeight: -1 + m_FlexibleWidth: 1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &578785327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 578785328} + - component: {fileID: 578785330} + - component: {fileID: 578785329} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &578785328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 578785327} + 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: 1 + m_Children: [] + m_Father: {fileID: 2006619345} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &578785329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 578785327} + 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: 10901, 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 &578785330 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 578785327} + m_CullTransparentMesh: 1 +--- !u!1 &638446755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 638446756} + - component: {fileID: 638446760} + - component: {fileID: 638446759} + - component: {fileID: 638446758} + - component: {fileID: 638446757} + m_Layer: 5 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &638446756 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638446755} + 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: 1 + m_Children: + - {fileID: 261906815} + - {fileID: 2027249695} + - {fileID: 1539986340} + m_Father: {fileID: 1175833942} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &638446757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638446755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 128 + m_MinHeight: -1 + m_PreferredWidth: 256 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &638446758 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638446755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, 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: 638446759} + m_Template: {fileID: 1539986340} + m_CaptionText: {fileID: 261906816} + m_CaptionImage: {fileID: 0} + m_Placeholder: {fileID: 0} + m_ItemText: {fileID: 1041967940} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 +--- !u!114 &638446759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638446755} + 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 &638446760 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 638446755} + m_CullTransparentMesh: 1 +--- !u!1 &846109566 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 846109568} + - component: {fileID: 846109567} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &846109567 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846109566} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &846109568 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846109566} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &914705823 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 914705824} + - component: {fileID: 914705827} + - component: {fileID: 914705826} + - component: {fileID: 914705825} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &914705824 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914705823} + 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: 1 + m_Children: + - {fileID: 517660784} + m_Father: {fileID: 1539986340} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &914705825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914705823} + 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: 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: 1625261308} + m_HandleRect: {fileID: 1625261307} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &914705826 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914705823} + 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: 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 &914705827 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 914705823} + m_CullTransparentMesh: 1 +--- !u!1 &1041967938 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1041967939} + - component: {fileID: 1041967941} + - component: {fileID: 1041967940} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1041967939 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1041967938} + 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: 1 + m_Children: [] + m_Father: {fileID: 2006619345} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1041967940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1041967938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Option A + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1041967941 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1041967938} + m_CullTransparentMesh: 1 +--- !u!1 &1093524929 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1093524933} + - component: {fileID: 1093524932} + - component: {fileID: 1093524931} + - component: {fileID: 1093524930} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1093524930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1093524929} + 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 &1093524931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1093524929} + 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 &1093524932 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1093524929} + 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_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1093524933 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1093524929} + 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: 1 + m_Children: + - {fileID: 200225032} + m_Father: {fileID: 0} + 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: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1175833941 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1175833942} + - component: {fileID: 1175833943} + m_Layer: 5 + m_Name: MiddlePanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1175833942 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1175833941} + 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: 1 + m_Children: + - {fileID: 41372777} + - {fileID: 638446756} + - {fileID: 545858272} + m_Father: {fileID: 200225032} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1175833943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1175833941} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 8 + m_Right: 8 + m_Top: 8 + m_Bottom: 8 + m_ChildAlignment: 3 + m_Spacing: 8 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &1318909066 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1318909067} + - component: {fileID: 1318909070} + - component: {fileID: 1318909069} + - component: {fileID: 1318909068} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1318909067 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318909066} + 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: 1 + m_Children: + - {fileID: 280817755} + m_Father: {fileID: 1539986340} + 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: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1318909068 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318909066} + 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: 10917, 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 &1318909069 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318909066} + m_CullTransparentMesh: 1 +--- !u!114 &1318909070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318909066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &1342179885 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1342179887} + - component: {fileID: 1342179886} + m_Layer: 0 + m_Name: SkyboxDemo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1342179886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1342179885} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 530e128bcdf8a054898532de9d8fba80, type: 3} + m_Name: + m_EditorClassIdentifier: + promptInputField: {fileID: 41372778} + skyboxStyleDropdown: {fileID: 638446758} + generateButton: {fileID: 545858273} + skyboxMaterial: {fileID: 2100000, guid: e671ac8eb3c6f6a4a97491eb29076e3b, type: 2} +--- !u!4 &1342179887 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1342179885} + 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: 1 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1460347554 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1460347555} + - component: {fileID: 1460347557} + - component: {fileID: 1460347556} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1460347555 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460347554} + 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: 1 + m_Children: [] + m_Father: {fileID: 1795232782} + m_RootOrder: 1 + 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 &1460347556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460347554} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1460347557 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460347554} + m_CullTransparentMesh: 1 +--- !u!1 &1539986339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1539986340} + - component: {fileID: 1539986343} + - component: {fileID: 1539986342} + - component: {fileID: 1539986341} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1539986340 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1539986339} + 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: 1 + m_Children: + - {fileID: 1318909067} + - {fileID: 914705824} + m_Father: {fileID: 638446756} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1539986341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1539986339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 280817755} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 1318909067} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 914705825} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1539986342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1539986339} + 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 &1539986343 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1539986339} + m_CullTransparentMesh: 1 +--- !u!1 &1570093185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1570093186} + - component: {fileID: 1570093188} + - component: {fileID: 1570093187} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1570093186 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570093185} + 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: 1 + m_Children: [] + m_Father: {fileID: 545858272} + 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 &1570093187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570093185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: Generate + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1570093188 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570093185} + m_CullTransparentMesh: 1 +--- !u!1 &1612849245 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1612849246} + m_Layer: 5 + m_Name: TopPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1612849246 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1612849245} + 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: 1 + m_Children: [] + m_Father: {fileID: 200225032} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1625261306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1625261307} + - component: {fileID: 1625261309} + - component: {fileID: 1625261308} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1625261307 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625261306} + 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: 1 + m_Children: [] + m_Father: {fileID: 517660784} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1625261308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625261306} + 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 &1625261309 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1625261306} + m_CullTransparentMesh: 1 +--- !u!1 &1795232781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1795232782} + - component: {fileID: 1795232783} + m_Layer: 5 + m_Name: TextArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1795232782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1795232781} + 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: 1 + m_Children: + - {fileID: 463533641} + - {fileID: 1460347555} + m_Father: {fileID: 41372777} + 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.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1795232783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1795232781} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &1802491287 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1802491288} + - component: {fileID: 1802491290} + - component: {fileID: 1802491289} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1802491288 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802491287} + 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: 1 + m_Children: [] + m_Father: {fileID: 2006619345} + 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 &1802491289 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802491287} + 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.9607843, g: 0.9607843, b: 0.9607843, 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: 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 &1802491290 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1802491287} + m_CullTransparentMesh: 1 +--- !u!1 &2006619344 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2006619345} + - component: {fileID: 2006619346} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2006619345 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006619344} + 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: 1 + m_Children: + - {fileID: 1802491288} + - {fileID: 578785328} + - {fileID: 1041967939} + m_Father: {fileID: 280817755} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2006619346 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006619344} + 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: 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: 1802491289} + toggleTransition: 1 + graphic: {fileID: 578785329} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &2027249694 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2027249695} + - component: {fileID: 2027249697} + - component: {fileID: 2027249696} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2027249695 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027249694} + 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: 1 + m_Children: [] + m_Father: {fileID: 638446756} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2027249696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027249694} + 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: 10915, 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 &2027249697 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027249694} + m_CullTransparentMesh: 1 diff --git a/BlockadeLabs/Assets/Demo/SkyboxDemo.unity.meta b/BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxSample.unity.meta similarity index 100% rename from BlockadeLabs/Assets/Demo/SkyboxDemo.unity.meta rename to BlockadeLabs/Packages/com.rest.blockadelabs/Samples~/Skybox/SkyboxSample.unity.meta diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/Tests/TestFixture_00_Skyboxes.cs b/BlockadeLabs/Packages/com.rest.blockadelabs/Tests/TestFixture_00_Skyboxes.cs index 53d16d6..b62a773 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/Tests/TestFixture_00_Skyboxes.cs +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/Tests/TestFixture_00_Skyboxes.cs @@ -1,5 +1,9 @@ +// Licensed under the MIT License. See LICENSE in the project root for license information. + using BlockadeLabs.Skyboxes; using NUnit.Framework; +using System; +using System.Threading; using UnityEngine; using Task = System.Threading.Tasks.Task; @@ -10,7 +14,7 @@ public class TestFixture_01_Skyboxes [Test] public async Task Test_01_GetSkyboxStyles() { - var api = new BlockadeLabsClient(); + var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvironment()); Assert.IsNotNull(api.SkyboxEndpoint); var skyboxStyles = await api.SkyboxEndpoint.GetSkyboxStylesAsync(); Assert.IsNotNull(skyboxStyles); @@ -24,7 +28,7 @@ public async Task Test_01_GetSkyboxStyles() [Test] public async Task Test_02_GenerateSkybox() { - var api = new BlockadeLabsClient(); + var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvironment()); Assert.IsNotNull(api.SkyboxEndpoint); var request = new SkyboxRequest("mars", depth: true); @@ -37,5 +41,81 @@ public async Task Test_02_GenerateSkybox() Assert.IsNotNull(skyboxInfo.DepthTexture); Debug.Log(skyboxInfo.ToString()); } + + [Test] + public async Task Test_03_GetSkyboxInfo() + { + var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvironment()); + Assert.IsNotNull(api.SkyboxEndpoint); + var skyboxId = 6602899; + var skyboxInfo = await api.SkyboxEndpoint.GetSkyboxInfoAsync(skyboxId); + Assert.IsNotNull(skyboxInfo); + await skyboxInfo.LoadTexturesAsync(); + Assert.IsNotNull(skyboxInfo.MainTexture); + Assert.IsNotNull(skyboxInfo.DepthTexture); + } + + [Test] + public async Task Test_04_GetHistory() + { + var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvironment()); + Assert.IsNotNull(api.SkyboxEndpoint); + var history = await api.SkyboxEndpoint.GetSkyboxHistoryAsync(); + Assert.IsNotNull(history); + Assert.IsNotEmpty(history.Skyboxes); + Debug.Log($"Found {history.TotalCount} skyboxes"); + + foreach (var skybox in history.Skyboxes) + { + Debug.Log($"{skybox.Id} {skybox.Title} status: {skybox.Status}"); + } + } + + [Test] + public async Task Test_05_CancelPendingGeneration() + { + var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvironment()); + Assert.IsNotNull(api.SkyboxEndpoint); + var request = new SkyboxRequest("mars", depth: true); + var cts = new CancellationTokenSource(TimeSpan.FromSeconds(1.5)); + + try + { + await api.SkyboxEndpoint.GenerateSkyboxAsync(request, 1, cts.Token); + } + catch (OperationCanceledException) + { + Debug.Log("Operation successfully cancelled"); + } + catch (Exception e) + { + Debug.LogError(e); + } + } + + [Test] + public async Task Test_06_CancelAllPendingGenerations() + { + var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvironment()); + Assert.IsNotNull(api.SkyboxEndpoint); + var result = await api.SkyboxEndpoint.CancelAllPendingSkyboxGenerationsAsync(); + Debug.Log(result ? "All pending generations successfully cancelled" : "No pending generations"); + } + + [Test] + public async Task Test_07_DeleteSkybox() + { + var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvironment()); + Assert.IsNotNull(api.SkyboxEndpoint); + var history = await api.SkyboxEndpoint.GetSkyboxHistoryAsync(new SkyboxHistoryParameters { StatusFilter = Status.Abort }); + Assert.IsNotNull(history); + + foreach (var skybox in history.Skyboxes) + { + Debug.Log($"Deleting {skybox.Id} {skybox.Title}"); + var result = await api.SkyboxEndpoint.DeleteSkyboxAsync(skybox); + Assert.IsTrue(result); + } + } } } diff --git a/BlockadeLabs/Packages/com.rest.blockadelabs/package.json b/BlockadeLabs/Packages/com.rest.blockadelabs/package.json index 58b95ee..b59b664 100644 --- a/BlockadeLabs/Packages/com.rest.blockadelabs/package.json +++ b/BlockadeLabs/Packages/com.rest.blockadelabs/package.json @@ -3,7 +3,7 @@ "displayName": "BlockadeLabs", "description": "A Non-Official Blockade Labs Rest Client for Unity (UPM)", "keywords": [], - "version": "1.0.0-preview.5", + "version": "1.0.0", "unity": "2021.3", "documentationUrl": "https://github.com/RageAgainstThePixel/com.rest.blockadelabs#documentation", "changelogUrl": "https://github.com/RageAgainstThePixel/com.rest.blockadelabs/releases", @@ -17,10 +17,16 @@ "url": "https://github.com/StephenHodgson" }, "dependencies": { - "com.utilities.rest": "2.0.7" + "com.utilities.rest": "2.1.0" }, + "samples": [ + { + "displayName": "Skybox Generation", + "description": "Contains demo scene to generate skyboxes at runtime.", + "path": "Samples~/Skybox" + } + ], "publishConfig": { "registry": "https://package.openupm.com" - }, - "hideInEditor": false + } } \ No newline at end of file diff --git a/BlockadeLabs/ProjectSettings/EditorBuildSettings.asset b/BlockadeLabs/ProjectSettings/EditorBuildSettings.asset index 8e9efc3..e2ac381 100644 --- a/BlockadeLabs/ProjectSettings/EditorBuildSettings.asset +++ b/BlockadeLabs/ProjectSettings/EditorBuildSettings.asset @@ -6,6 +6,6 @@ EditorBuildSettings: serializedVersion: 2 m_Scenes: - enabled: 1 - path: Assets/Demo/SkyboxDemo.unity + path: Assets/Samples/BlockadeLabs/1.0.0/Skybox Generation/SkyboxSample.unity guid: c64e45bae6fa19d4a90c4037e84fbae5 m_configObjects: {} diff --git a/README.md b/README.md index 2ddd423..6389afc 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ I am not affiliated with BlockadeLabs and an account with api access is required Requires Unity 2021.3 LTS or higher. -The recommended installation method is though the unity package manager and [OpenUPM](https://openupm.com/packages/com.openai.unity). +The recommended installation method is though the unity package manager and [OpenUPM](https://openupm.com/packages/com.rest.blockadelabs). ### Via Unity Package Manager and OpenUPM @@ -35,6 +35,7 @@ The recommended installation method is though the unity package manager and [Ope - Add package from git url: `https://github.com/RageAgainstThePixel/com.rest.blockadelabs.git#upm` > Note: this repo has dependencies on other repositories! You are responsible for adding these on your own. - [com.utilities.async](https://github.com/RageAgainstThePixel/com.utilities.async) + - [com.utilities.extensions](https://github.com/RageAgainstThePixel/com.utilities.extensions) - [com.utilities.rest](https://github.com/RageAgainstThePixel/com.utilities.rest) ## Documentation @@ -46,6 +47,10 @@ The recommended installation method is though the unity package manager and [Ope - [Get Skybox Styles](#get-skybox-styles) - [Generate Skybox](#generate-skybox) - [Get Skybox by Id](#get-skybox) + - [Delete Skybox by Id](#delete-skybox) + - [Get Skybox History](#get-skybox-history) + - [Cancel Skybox Generation](#cancel-skybox-generation) + - [Cancel All Pending Skybox Generations](#cancel-all-pending-skybox-generations) ### Authentication @@ -108,7 +113,7 @@ var api = new BlockadeLabsClient(BlockadeLabsAuthentication.Default.LoadFromEnvi ### Skyboxes -#### [Get Skybox Styles](https://blockade.cloudshell.run/redoc#tag/skybox/operation/Get_Skybox_Styles_api_v1_skybox_styles_get) +#### [Get Skybox Styles](https://api-documentation.blockadelabs.com/api/skybox.html#get-skybox-styles) Returns the list of predefined styles that can influence the overall aesthetic of your skybox generation. @@ -122,23 +127,73 @@ foreach (var skyboxStyle in skyboxStyles) } ``` -#### [Generate Skybox](https://blockade.cloudshell.run/redoc#tag/skybox/operation/Generate_Skybox_api_v1_skybox_generate_post) +#### [Generate Skybox](https://api-documentation.blockadelabs.com/api/skybox.html#generate-skybox) -Generate a skybox image +Generate a skybox. ```csharp var api = new BlockadeLabsClient(); -var request = new SkyboxRequest("underwater", depth: true); +var request = new SkyboxRequest("mars", depth: true); var skyboxInfo = await api.SkyboxEndpoint.GenerateSkyboxAsync(request); skyboxMaterial.mainTexture = skyboxInfo.MainTexture; skyboxMaterial.depthTexture = skyboxInfo.DepthTexture; ``` -#### [Get Skybox](https://blockade.cloudshell.run/redoc#tag/skybox/operation/Get_Skybox_By_Id_api_v1_skybox_info__id__get) +#### [Get Skybox](https://api-documentation.blockadelabs.com/api/skybox.html#get-skybox-by-id) Returns the skybox metadata for the given skybox id. ```csharp -var skyboxInfo = await api.SkyboxEndpoint.GetSkyboxInfoAsync("skybox-id"); +var skyboxId = 42; +var skyboxInfo = await api.SkyboxEndpoint.GetSkyboxInfoAsync(skyboxId); Debug.Log($"Skybox: {result.Id} | {result.MainTextureUrl}"); +// Note: If you wish to use the returned skybox textures you'll need to additionally call await SkyboxInfo.LoadTexturesAsync(); before you can assign them to a material property. +await skyboxInfo.LoadTexturesAsync(); +skyboxMaterial.mainTexture = skyboxInfo.MainTexture; +skyboxMaterial.depthTexture = skyboxInfo.DepthTexture; +``` + +#### [Delete Skybox](https://api-documentation.blockadelabs.com/api/skybox.html#delete) + +Deletes a skybox by id. + +```csharp +var skyboxId = 42; +var result = await api.SkyboxEndpoint.DeleteSkyboxAsync(skybox); +// result == true +``` + +#### [Get Skybox History](https://api-documentation.blockadelabs.com/api/skybox.html#get-history) + +Gets the previously generated skyboxes. + +```csharp +var history = await api.SkyboxEndpoint.GetSkyboxHistoryAsync(); +Debug.Log($"Found {history.TotalCount} skyboxes"); + +foreach (var skybox in history.Skyboxes) +{ + Debug.Log($"{skybox.Id} {skybox.Title} status: {skybox.Status}"); +} +``` + +#### [Cancel Skybox Generation](https://api-documentation.blockadelabs.com/api/skybox.html#cancel-generation) + +Cancels a pending skybox generation request by id. + +```csharp +var skyboxId = 42; +var result = await CancelSkyboxGenerationAsync(skyboxId); +// result == true +``` + +> Note: This is automatically done when cancelling a skybox generation using cancellation token. + +#### [Cancel All Pending Skybox Generations](https://api-documentation.blockadelabs.com/api/skybox.html#cancel-all-pending-generations) + +Cancels ALL pending skybox generation requests. + +```csharp +var result = await api.SkyboxEndpoint.CancelAllPendingSkyboxGenerationsAsync(); +Debug.Log(result ? "All pending generations successfully cancelled" : "No pending generations"); ```