diff --git a/.github/scripts/translate_localization.py b/.github/scripts/translate_localization.py index a88701f9..22743089 100644 --- a/.github/scripts/translate_localization.py +++ b/.github/scripts/translate_localization.py @@ -23,11 +23,11 @@ def translate_text(text, target_language): try: response = client.chat.completions.create( - model="gpt-4o-mini", + model="gpt-4o-mini", messages=[ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": f"Translate the following Japanese text to {target_language}. Return only the translated text without any additional explanations or notes.\n\n{text}"} - ] + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": f"Translate the following Japanese text to {target_language}. Return only the translated text without any additional explanations or notes.\n\n{text}"} + ] ) # 翻訳結果を取得 translation = response.choices[0].message.content.strip() @@ -36,11 +36,11 @@ def translate_text(text, target_language): print(f"翻訳中にエラーが発生しました:{e}") return None -# 各行に対して翻訳を実行 -for idx, row in df.iterrows(): +# 各行に対して翻訳を実行(先頭行をスキップ) +for idx, row in df.iloc[1:].iterrows(): japanese_text = row.get('Japanese(ja)', '') key = row.get('Key', '') - + # 日本語テキストが存在する場合のみ翻訳を実行 if pd.notnull(japanese_text) and japanese_text.strip() != '': print(f"キー '{key}' の翻訳を実行します。") @@ -88,7 +88,6 @@ def write_custom_csv(df, csv_path): data_row.append(f'"{value}"') csvfile.write(','.join(data_row) + '\n') - # カスタム関数でCSVを保存 write_custom_csv(df, csv_path) print("翻訳が完了し、CSVファイルが更新されました。") \ No newline at end of file diff --git a/Assets/uDesktopMascot/Editor/LocalizationTableSaveProcessor.cs b/Assets/uDesktopMascot/Editor/LocalizationTableSaveProcessor.cs new file mode 100644 index 00000000..89366766 --- /dev/null +++ b/Assets/uDesktopMascot/Editor/LocalizationTableSaveProcessor.cs @@ -0,0 +1,178 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.Localization.Tables; +using UnityEditor.Localization; +using System.IO; +using System.Text; +using System.Collections.Generic; +using System.Globalization; + +namespace uDesktopMascot.Editor +{ + /// + /// ローカリゼーションテーブルをセーブ時に自動でCSVにエクスポートする処理 + /// + public class LocalizationTableSaveProcessor : AssetModificationProcessor + { + /// + /// アセットが保存される直前に呼び出されるコールバック。 + /// 保存されるアセットがローカリゼーションテーブルである場合、CSVエクスポートを行います。 + /// + /// 保存されるアセットのパスの配列 + /// 保存されるアセットのパスの配列 + private static string[] OnWillSaveAssets(string[] paths) + { + // 保存されるアセットパスをループ + foreach (var path in paths) + { + // アセットがローカリゼーションテーブルかどうかを確認 + var asset = AssetDatabase.LoadAssetAtPath(path); + if (asset is StringTable stringTable) + { + // CSVエクスポートの処理を実行 + ExportStringTableToCSV(stringTable); + } + } + return paths; + } + + /// + /// 指定されたStringTableを含むテーブルコレクションをCSVにエクスポートします。 + /// + /// エクスポートするStringTable + private static void ExportStringTableToCSV(StringTable stringTable) + { + // テーブルコレクションを取得 + var tableCollection = LocalizationEditorSettings.GetCollectionFromTable(stringTable) as StringTableCollection; + if (tableCollection == null) + { + Debug.LogError($"テーブルコレクションが見つかりませんでした:{stringTable.TableCollectionName}"); + return; + } + + // エクスポート先のパスを設定 + var exportPath = "Assets/uDesktopMascot/LocalizationTable/LocalizationTable.csv"; + var exportDirectory = Path.GetDirectoryName(exportPath); + if (!Directory.Exists(exportDirectory)) + { + Directory.CreateDirectory(exportDirectory); + } + + // CSVデータを生成 + var csvData = GenerateCSVData(tableCollection); + + // CSVファイルを書き出し(既に存在する場合は上書き) + File.WriteAllText(exportPath, csvData, Encoding.UTF8); + + Debug.Log($"CSVエクスポートが完了しました:{exportPath}"); + } + + /// + /// テーブルコレクションのデータからCSV形式の文字列を生成します。 + /// + /// CSVデータを生成するStringTableCollection + /// 生成されたCSV形式の文字列 + private static string GenerateCSVData(StringTableCollection tableCollection) + { + var sb = new StringBuilder(); + + // ヘッダーを追加(ダブルクォーテーションなし) + sb.Append("Key,Id"); + // 言語カラムの順序を元のCSVと同じにする + var localeCodes = new List(); + foreach (var localeCode in new[] { "en", "fr", "it", "ja", "ko" }) + { + var table = tableCollection.GetTable(localeCode); + if (table != null) + { + localeCodes.Add(localeCode); + var languageName = GetLanguageName(localeCode); + sb.Append($",{languageName}({localeCode})"); + } + } + sb.AppendLine(); + + // エントリを取得 + var sharedData = tableCollection.SharedData; + foreach (var sharedEntry in sharedData.Entries) + { + // Keyフィールドをダブルクォーテーションで囲む + var key = EscapeCSVField(sharedEntry.Key); + + // Idフィールドはそのまま(ダブルクォーテーションなし) + var id = sharedEntry.Id.ToString(); + + sb.Append($"{key},{id}"); + + foreach (var localeCode in localeCodes) + { + var table = tableCollection.GetTable(localeCode) as StringTable; + if (table != null) + { + var entry = table.GetEntry(sharedEntry.Id); + if (entry != null) + { + // ローカライズされた値をダブルクォーテーションで囲む + var localizedValue = EscapeCSVField(entry.LocalizedValue); + sb.Append($",{localizedValue}"); + } + else + { + // 空の値でもダブルクォーテーションを付ける + sb.Append($",\"\""); + } + } + else + { + // テーブルが存在しない場合もダブルクォーテーション付きの空文字を追加 + sb.Append($",\"\""); + } + } + sb.AppendLine(); + } + + return sb.ToString(); + } + + /// + /// CSVフィールドをダブルクォーテーションで囲み、内部のダブルクォーテーションをエスケープします。 + /// + /// エスケープするフィールドの文字列 + /// ダブルクォーテーションで囲まれた、エスケープ処理された文字列 + private static string EscapeCSVField(string field) + { + if (string.IsNullOrEmpty(field)) + { + return "\"\""; + } + + // ダブルクォーテーションをエスケープ + if (field.Contains("\"")) + { + field = field.Replace("\"", "\"\""); + } + + // フィールドをダブルクォーテーションで囲む + return $"\"{field}\""; + } + + /// + /// ロケールコードから言語名を取得します。 + /// + /// ロケールコード(例:"en") + /// 言語名(例:"English") + private static string GetLanguageName(string localeCode) + { + try + { + var culture = new CultureInfo(localeCode); + return culture.EnglishName; + } + catch + { + // ロケールコードが認識されない場合はそのまま返す + return localeCode; + } + } + } +} \ No newline at end of file diff --git a/Assets/uDesktopMascot/Editor/LocalizationTableSaveProcessor.cs.meta b/Assets/uDesktopMascot/Editor/LocalizationTableSaveProcessor.cs.meta new file mode 100644 index 00000000..65883434 --- /dev/null +++ b/Assets/uDesktopMascot/Editor/LocalizationTableSaveProcessor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 390e3e01c054431b8c489a09228ad52b +timeCreated: 1738855922 \ No newline at end of file diff --git a/Assets/uDesktopMascot/Images/UI/frame.png b/Assets/uDesktopMascot/Images/UI/frame.png new file mode 100644 index 00000000..2b31d59c Binary files /dev/null and b/Assets/uDesktopMascot/Images/UI/frame.png differ diff --git a/Assets/uDesktopMascot/Images/UI/frame.png.meta b/Assets/uDesktopMascot/Images/UI/frame.png.meta new file mode 100644 index 00000000..a0187482 --- /dev/null +++ b/Assets/uDesktopMascot/Images/UI/frame.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 60d6c0ebd6c54e04f89bbbd23b8348e3 +TextureImporter: + internalIDToNameTable: + - first: + 213: 7501387830980884940 + second: frame_0 + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: frame_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 315 + height: 487 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: cc9bd0cfc784a1860800000000000000 + internalID: 7501387830980884940 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + frame_0: 7501387830980884940 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable Shared Data.asset b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable Shared Data.asset index 9e67d93b..55810cc7 100644 --- a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable Shared Data.asset +++ b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable Shared Data.asset @@ -55,6 +55,22 @@ MonoBehaviour: m_Key: WORD_WEB_UI_BUTTON m_Metadata: m_Items: [] + - m_Id: 5073601682935808 + m_Key: WORD_ADD_BUTTON + m_Metadata: + m_Items: [] + - m_Id: 5074280786890752 + m_Key: WORD_ADD_MODEL_PATH_PLACEHOLDER + m_Metadata: + m_Items: [] + - m_Id: 5075115772153856 + m_Key: WORD_ADD_DRAG_MODEL + m_Metadata: + m_Items: [] + - m_Id: 5282738060595200 + m_Key: WORD_OPEN_MODEL + m_Metadata: + m_Items: [] m_Metadata: m_Items: [] m_KeyGenerator: diff --git a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable.csv b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable.csv index 160b8c10..5e8db088 100644 --- a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable.csv +++ b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable.csv @@ -9,3 +9,7 @@ Key,Id,English(en),French(fr),Italian(it),Japanese(ja),Korean(ko) "WORD_SEND_MESSAGE_BUTTON_TEXT",4547369455259648,"Send","Envoi","Invio","送信","전송" "WORD_AI_CHAT",4599798494334976,"Chat","Chat","Chat","チャット","챗봇" "WORD_WEB_UI_BUTTON",4600571496173568,"Web UI","Interface utilisateur web","Interfaccia web","ウェブUI","웹 UI" +"WORD_ADD_BUTTON",5073601682935808,"Addition","Ajout","Aggiunta","追加","추가" +"WORD_ADD_MODEL_PATH_PLACEHOLDER",5074280786890752,"Path to add the model","Chemin du modèle à ajouter","Percorso del modello da aggiungere","追加するモデルのパス","추가할 모델의 경로" +"WORD_ADD_DRAG_MODEL",5075115772153856,"Add VRM model by dragging.","Ajoutez un modèle VRM en faisant glisser.","Aggiungi un modello VRM tramite drag and drop.","ドラッグでVRMモデルを追加","드래그로 VRM 모델 추가" +"WORD_OPEN_MODEL",5282738060595200,"Select a model from the folder.","Sélectionnez un modèle dans le dossier.","Seleziona il modello dalla cartella","モデルをフォルダから選択","폴더에서 모델 선택하기" diff --git a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_en.asset b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_en.asset index 52a524f6..585b5c66 100644 --- a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_en.asset +++ b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_en.asset @@ -60,6 +60,22 @@ MonoBehaviour: m_Localized: Web UI m_Metadata: m_Items: [] + - m_Id: 5073601682935808 + m_Localized: Addition + m_Metadata: + m_Items: [] + - m_Id: 5074280786890752 + m_Localized: Path to add the model + m_Metadata: + m_Items: [] + - m_Id: 5075115772153856 + m_Localized: Add VRM model by dragging. + m_Metadata: + m_Items: [] + - m_Id: 5282738060595200 + m_Localized: Select a model from the folder. + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_fr.asset b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_fr.asset index 01262e15..50132e3b 100644 --- a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_fr.asset +++ b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_fr.asset @@ -60,6 +60,22 @@ MonoBehaviour: m_Localized: Interface utilisateur web m_Metadata: m_Items: [] + - m_Id: 5073601682935808 + m_Localized: Ajout + m_Metadata: + m_Items: [] + - m_Id: 5074280786890752 + m_Localized: "Chemin du mod\xE8le \xE0 ajouter" + m_Metadata: + m_Items: [] + - m_Id: 5075115772153856 + m_Localized: "Ajoutez un mod\xE8le VRM en faisant glisser." + m_Metadata: + m_Items: [] + - m_Id: 5282738060595200 + m_Localized: "S\xE9lectionnez un mod\xE8le dans le dossier." + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_it.asset b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_it.asset index 456d51a1..f8054b82 100644 --- a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_it.asset +++ b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_it.asset @@ -60,6 +60,22 @@ MonoBehaviour: m_Localized: Interfaccia web m_Metadata: m_Items: [] + - m_Id: 5073601682935808 + m_Localized: Aggiunta + m_Metadata: + m_Items: [] + - m_Id: 5074280786890752 + m_Localized: Percorso del modello da aggiungere + m_Metadata: + m_Items: [] + - m_Id: 5075115772153856 + m_Localized: Aggiungi un modello VRM tramite drag and drop. + m_Metadata: + m_Items: [] + - m_Id: 5282738060595200 + m_Localized: Seleziona il modello dalla cartella + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ja.asset b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ja.asset index 33ddce08..5daef777 100644 --- a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ja.asset +++ b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ja.asset @@ -58,6 +58,22 @@ MonoBehaviour: m_Localized: "\u30A6\u30A7\u30D6UI" m_Metadata: m_Items: [] + - m_Id: 5073601682935808 + m_Localized: "\u8FFD\u52A0" + m_Metadata: + m_Items: [] + - m_Id: 5074280786890752 + m_Localized: "\u8FFD\u52A0\u3059\u308B\u30E2\u30C7\u30EB\u306E\u30D1\u30B9" + m_Metadata: + m_Items: [] + - m_Id: 5075115772153856 + m_Localized: "\u30C9\u30E9\u30C3\u30B0\u3067VRM\u30E2\u30C7\u30EB\u3092\u8FFD\u52A0" + m_Metadata: + m_Items: [] + - m_Id: 5282738060595200 + m_Localized: "\u30E2\u30C7\u30EB\u3092\u30D5\u30A9\u30EB\u30C0\u304B\u3089\u9078\u629E" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ko.asset b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ko.asset index 30f7e5b1..41684fcf 100644 --- a/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ko.asset +++ b/Assets/uDesktopMascot/LocalizationTable/LocalizationTable_ko.asset @@ -61,6 +61,22 @@ MonoBehaviour: m_Localized: "\uC6F9 UI" m_Metadata: m_Items: [] + - m_Id: 5073601682935808 + m_Localized: "\uCD94\uAC00" + m_Metadata: + m_Items: [] + - m_Id: 5074280786890752 + m_Localized: "\uCD94\uAC00\uD560 \uBAA8\uB378\uC758 \uACBD\uB85C" + m_Metadata: + m_Items: [] + - m_Id: 5075115772153856 + m_Localized: "\uB4DC\uB798\uADF8\uB85C VRM \uBAA8\uB378 \uCD94\uAC00" + m_Metadata: + m_Items: [] + - m_Id: 5282738060595200 + m_Localized: "\uD3F4\uB354\uC5D0\uC11C \uBAA8\uB378 \uC120\uD0DD\uD558\uAE30" + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm.meta b/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm.meta index 3e5cc67c..839f07ab 100644 --- a/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm.meta +++ b/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm.meta @@ -394,4 +394,4 @@ ScriptedImporter: assetBundleVariant: script: {fileID: 11500000, guid: f66ead3390398f443aa127b741826ad9, type: 3} MigrateToVrm1: 1 - RenderPipeline: 0 + RenderPipeline: 2 diff --git a/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm1.Assets/_vrm1_.asset b/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm1.Assets/_vrm1_.asset index 92e33a3a..7050b02b 100644 --- a/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm1.Assets/_vrm1_.asset +++ b/Assets/uDesktopMascot/Resources/DefaultModel/DefaultModel.vrm1.Assets/_vrm1_.asset @@ -14,24 +14,24 @@ MonoBehaviour: m_EditorClassIdentifier: m_prefab: {fileID: -1728013695380148634, guid: 0643c491492f7ff44af830bb4c19e61e, type: 3} Meta: - Name: A + Name: "\u30C7\u30D5\u30A9" Version: 0.0.1 Authors: - - kou + - "\u30A2\u30AA\u30BE\u30E9" CopyrightInformation: ContactInformation: References: [] ThirdPartyLicenses: Thumbnail: {fileID: 2800000, guid: 130855968e3d6724eafaad1f2648911c, type: 3} - AvatarPermission: 0 - ViolentUsage: 0 - SexualUsage: 0 - CommercialUsage: 0 - PoliticalOrReligiousUsage: 0 - AntisocialOrHateUsage: 0 + AvatarPermission: 2 + ViolentUsage: 1 + SexualUsage: 1 + CommercialUsage: 2 + PoliticalOrReligiousUsage: 1 + AntisocialOrHateUsage: 1 CreditNotation: 0 - Redistribution: 0 - Modification: 0 + Redistribution: 1 + Modification: 2 OtherLicenseUrl: Expression: Happy: {fileID: 11400000, guid: 0e29414f73491944a842b84aa3d6dec3, type: 2} diff --git a/Assets/uDesktopMascot/Resources/UI/Common.meta b/Assets/uDesktopMascot/Resources/UI/Common.meta new file mode 100644 index 00000000..3b961f72 --- /dev/null +++ b/Assets/uDesktopMascot/Resources/UI/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1548e5c2e1b588a4384ba195ef740d9e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/uDesktopMascot/Resources/UI/Common/ModelInfo.prefab b/Assets/uDesktopMascot/Resources/UI/Common/ModelInfo.prefab new file mode 100644 index 00000000..95b797db --- /dev/null +++ b/Assets/uDesktopMascot/Resources/UI/Common/ModelInfo.prefab @@ -0,0 +1,461 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &336165368280984709 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5809527449160129362} + - component: {fileID: 435278494268143163} + - component: {fileID: 5888715025017774835} + m_Layer: 5 + m_Name: BackGroundFrameImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5809527449160129362 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336165368280984709} + 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: 6602453644575945564} + 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!222 &435278494268143163 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336165368280984709} + m_CullTransparentMesh: 1 +--- !u!114 &5888715025017774835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 336165368280984709} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.8193936, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 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!1 &963314708451842756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3140520300264707452} + - component: {fileID: 1513916595982045953} + - component: {fileID: 8859903451785108648} + m_Layer: 5 + m_Name: Thumbnail + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3140520300264707452 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963314708451842756} + 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: 6602453644575945564} + 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: 0, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &1513916595982045953 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963314708451842756} + m_CullTransparentMesh: 1 +--- !u!114 &8859903451785108648 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963314708451842756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, 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_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1 &1700041997186880398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7669942176010810646} + - component: {fileID: 5536321295932544455} + - component: {fileID: 7614120652971775824} + m_Layer: 5 + m_Name: BackGroundImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7669942176010810646 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700041997186880398} + 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: 6602453644575945564} + 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!222 &5536321295932544455 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700041997186880398} + m_CullTransparentMesh: 1 +--- !u!114 &7614120652971775824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1700041997186880398} + 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.5707547, g: 0.9818946, b: 1, a: 0.43137255} + 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!1 &2006711817778089118 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3143481074135335125} + - component: {fileID: 2244635073137143282} + - component: {fileID: 930162028329318031} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3143481074135335125 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006711817778089118} + 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: 6602453644575945564} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -17.198425, y: 0} + m_SizeDelta: {x: -64.3966, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2244635073137143282 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006711817778089118} + m_CullTransparentMesh: 1 +--- !u!114 &930162028329318031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2006711817778089118} + 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: New Text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_sharedMaterial: {fileID: 3991398196324383077, guid: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, 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: 20.7 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 5 + m_fontSizeMax: 72 + m_fontStyle: 1 + 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_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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!1 &7133228653244461086 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6602453644575945564} + - component: {fileID: 8487265295133120665} + - component: {fileID: 5956748693450340186} + m_Layer: 5 + m_Name: ModelInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6602453644575945564 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7133228653244461086} + 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: 5809527449160129362} + - {fileID: 7669942176010810646} + - {fileID: 3143481074135335125} + - {fileID: 3140520300264707452} + m_Father: {fileID: 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: 40} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &8487265295133120665 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7133228653244461086} + 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: 7614120652971775824} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &5956748693450340186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7133228653244461086} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7f29c8d40bcc4f0cb5e4d291c601bf61, type: 3} + m_Name: + m_EditorClassIdentifier: + modelNameText: {fileID: 930162028329318031} + selectButton: {fileID: 8487265295133120665} + backgroundFrameImage: {fileID: 5888715025017774835} + thumbnailImage: {fileID: 8859903451785108648} diff --git a/Assets/uDesktopMascot/Resources/UI/Common/ModelInfo.prefab.meta b/Assets/uDesktopMascot/Resources/UI/Common/ModelInfo.prefab.meta new file mode 100644 index 00000000..2cadd8ab --- /dev/null +++ b/Assets/uDesktopMascot/Resources/UI/Common/ModelInfo.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 562b5df59b5e16c45b3b2f1a6bf62482 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/uDesktopMascot/Resources/UI/Dialog/SelectModelDialog.prefab b/Assets/uDesktopMascot/Resources/UI/Dialog/SelectModelDialog.prefab new file mode 100644 index 00000000..98e4116b --- /dev/null +++ b/Assets/uDesktopMascot/Resources/UI/Dialog/SelectModelDialog.prefab @@ -0,0 +1,2367 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &141527441175464300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7219237691741173517} + - component: {fileID: 2822463023486321361} + - component: {fileID: 4405684930182972189} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7219237691741173517 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141527441175464300} + 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: 6712330694102887196} + 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.000051604933} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &2822463023486321361 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141527441175464300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &4405684930182972189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 141527441175464300} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!1 &597809613186944653 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6176751824365673} + - component: {fileID: 5513344101580430340} + - component: {fileID: 8360342144671338539} + - component: {fileID: 7178809285730366222} + - component: {fileID: 6917943724112557523} + - component: {fileID: 4986057421867837433} + m_Layer: 5 + m_Name: SelectModelDialog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6176751824365673 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597809613186944653} + 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: 8677491949241970153} + m_Father: {fileID: 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, y: 0} +--- !u!223 &5513344101580430340 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597809613186944653} + 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: 1 + m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 3 + m_TargetDisplay: 0 +--- !u!114 &8360342144671338539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597809613186944653} + 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: 300, y: 400} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &7178809285730366222 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597809613186944653} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 3 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 51 +--- !u!225 &6917943724112557523 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597809613186944653} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &4986057421867837433 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597809613186944653} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 779c9b0de9c44fffbb2195e538732aec, type: 3} + m_Name: + m_EditorClassIdentifier: + closeButton: {fileID: 5849125722573429082} + modelInfoPrefab: {fileID: 5956748693450340186, guid: 562b5df59b5e16c45b3b2f1a6bf62482, type: 3} + contentTransform: {fileID: 7219237691741173517} +--- !u!1 &989239730487369372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2626221156522416171} + - component: {fileID: 2171909573884134118} + - component: {fileID: 4491327215415689903} + - component: {fileID: 6024942598944204984} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2626221156522416171 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 989239730487369372} + 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: 7806914258719165468} + 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: -10, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2171909573884134118 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 989239730487369372} + m_CullTransparentMesh: 1 +--- !u!114 &4491327215415689903 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 989239730487369372} + 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: New Text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_sharedMaterial: {fileID: 3991398196324383077, guid: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, 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: 21 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 1 + 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_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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!114 &6024942598944204984 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 989239730487369372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: GUID:e0bc4458d73676a429c1b840d5dbc577 + m_TableEntryReference: + m_KeyId: 5075115772153856 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 4491327215415689903} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &1748839091074414027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 624152497545794938} + - component: {fileID: 1002472177158910905} + - component: {fileID: 240202289313092512} + - component: {fileID: 7415309803780966053} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &624152497545794938 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1748839091074414027} + 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: 6712330694102887196} + - {fileID: 4491620995600225831} + m_Father: {fileID: 8253464402345922966} + 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!222 &1002472177158910905 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1748839091074414027} + m_CullTransparentMesh: 1 +--- !u!114 &240202289313092512 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1748839091074414027} + 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: 0.392} + 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!114 &7415309803780966053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1748839091074414027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 7219237691741173517} + 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: 6712330694102887196} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 448582319720708972} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1970214976708392516 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2478310119011935285} + - component: {fileID: 677478155438201908} + - component: {fileID: 8851668657363576093} + - component: {fileID: 6472723346624349732} + m_Layer: 5 + m_Name: AddModelPath + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2478310119011935285 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970214976708392516} + 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: 8468455173986192046} + m_Father: {fileID: 655350030915661122} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 10, y: -85.8} + m_SizeDelta: {x: -20, y: 30} + m_Pivot: {x: 0, y: 0} +--- !u!222 &677478155438201908 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970214976708392516} + m_CullTransparentMesh: 1 +--- !u!114 &8851668657363576093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970214976708392516} + 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!114 &6472723346624349732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970214976708392516} + 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: 8851668657363576093} + m_TextViewport: {fileID: 8468455173986192046} + m_TextComponent: {fileID: 407589986733095940} + m_Placeholder: {fileID: 3635090920399094263} + 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: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + 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: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_KeepTextSelectionVisible: 0 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + isAlert: 0 + m_InputValidator: {fileID: 0} + m_ShouldActivateOnSelect: 1 +--- !u!1 &2945143996985144692 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6712330694102887196} + - component: {fileID: 4539434902388710016} + - component: {fileID: 5748339606439807557} + - component: {fileID: 5072008933039521942} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6712330694102887196 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2945143996985144692} + 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: 7219237691741173517} + m_Father: {fileID: 624152497545794938} + 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: 1} +--- !u!222 &4539434902388710016 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2945143996985144692} + m_CullTransparentMesh: 1 +--- !u!114 &5748339606439807557 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2945143996985144692} + 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!114 &5072008933039521942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2945143996985144692} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &2992976885509807405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3912126287803504759} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3912126287803504759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2992976885509807405} + 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: 3771116364324596167} + m_Father: {fileID: 8677491949241970153} + 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: -10} + m_SizeDelta: {x: 0, y: 25} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &3410850782637743931 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4954468787562871857} + - component: {fileID: 4904695241595379816} + - component: {fileID: 5522810079230692176} + - component: {fileID: 9106721781355127440} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4954468787562871857 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3410850782637743931} + 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: 3758179776157591986} + 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: -10, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4904695241595379816 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3410850782637743931} + m_CullTransparentMesh: 1 +--- !u!114 &5522810079230692176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3410850782637743931} + 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: Button + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_sharedMaterial: {fileID: 3991398196324383077, guid: a4ac5cd8892e24e4790c00e0ef00a927, 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: 16.3 + m_fontSizeBase: 16.3 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + 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_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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!114 &9106721781355127440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3410850782637743931} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: GUID:e0bc4458d73676a429c1b840d5dbc577 + m_TableEntryReference: + m_KeyId: 5073601682935808 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5522810079230692176} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &3664823745733444370 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2886910471430566732} + - component: {fileID: 7600123290979173043} + - component: {fileID: 407589986733095940} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2886910471430566732 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3664823745733444370} + 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: 8468455173986192046} + 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!222 &7600123290979173043 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3664823745733444370} + m_CullTransparentMesh: 1 +--- !u!114 &407589986733095940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3664823745733444370} + 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: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_sharedMaterial: {fileID: 3991398196324383077, guid: a4ac5cd8892e24e4790c00e0ef00a927, 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: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 3 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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!1 &4429222640159227320 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8468455173986192046} + - component: {fileID: 7648386373145171235} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8468455173986192046 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4429222640159227320} + 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: 8170520537868271265} + - {fileID: 2886910471430566732} + m_Father: {fileID: 2478310119011935285} + 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 &7648386373145171235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4429222640159227320} + 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 &4716953486325492683 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 315154228316285283} + - component: {fileID: 4196224020864444924} + - component: {fileID: 5226488631335523835} + - component: {fileID: 8096648805996567822} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &315154228316285283 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4716953486325492683} + 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: 4783555877727300176} + 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: -10, y: -10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4196224020864444924 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4716953486325492683} + m_CullTransparentMesh: 1 +--- !u!114 &5226488631335523835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4716953486325492683} + 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: Button + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_sharedMaterial: {fileID: 3991398196324383077, guid: a4ac5cd8892e24e4790c00e0ef00a927, 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: 6.9 + m_fontSizeBase: 16.3 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 1 + 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_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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!114 &8096648805996567822 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4716953486325492683} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: GUID:e0bc4458d73676a429c1b840d5dbc577 + m_TableEntryReference: + m_KeyId: 5282738060595200 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 5226488631335523835} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &4820288339342183213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4491620995600225831} + - component: {fileID: 2173711016875137516} + - component: {fileID: 4105395809586815914} + - component: {fileID: 448582319720708972} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4491620995600225831 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820288339342183213} + 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: 3124401944828634975} + m_Father: {fileID: 624152497545794938} + 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: -17} + m_Pivot: {x: 1, y: 1} +--- !u!222 &2173711016875137516 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820288339342183213} + m_CullTransparentMesh: 1 +--- !u!114 &4105395809586815914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820288339342183213} + 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!114 &448582319720708972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4820288339342183213} + 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: 4938896768314717319} + m_HandleRect: {fileID: 8829334285660995281} + m_Direction: 2 + m_Value: 1 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &4941295098813808956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3771116364324596167} + - component: {fileID: 4249368379936409733} + - component: {fileID: 2071001624229714816} + - component: {fileID: 5849125722573429082} + m_Layer: 5 + m_Name: CloseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3771116364324596167 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4941295098813808956} + 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: 3912126287803504759} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: 25, y: 25} + m_Pivot: {x: 1, y: 1} +--- !u!222 &4249368379936409733 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4941295098813808956} + m_CullTransparentMesh: 1 +--- !u!114 &2071001624229714816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4941295098813808956} + 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: 21300000, guid: 5e1027c3ad2b94b47b68a8577784aef1, type: 3} + 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!114 &5849125722573429082 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4941295098813808956} + 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: 2071001624229714816} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5001710301853291637 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4783555877727300176} + - component: {fileID: 9179233465547608209} + - component: {fileID: 6788671146078125452} + - component: {fileID: 1795318823252908065} + m_Layer: 5 + m_Name: OpenModelButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4783555877727300176 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5001710301853291637} + 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: 315154228316285283} + m_Father: {fileID: 655350030915661122} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 40, y: 3} + m_SizeDelta: {x: 90, y: 30} + m_Pivot: {x: 0, y: 0} +--- !u!222 &9179233465547608209 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5001710301853291637} + m_CullTransparentMesh: 1 +--- !u!114 &6788671146078125452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5001710301853291637} + 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!114 &1795318823252908065 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5001710301853291637} + 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: 6788671146078125452} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5273489851282819176 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3124401944828634975} + 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 &3124401944828634975 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5273489851282819176} + 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: 8829334285660995281} + m_Father: {fileID: 4491620995600225831} + 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 &5332497817953742117 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7806914258719165468} + - component: {fileID: 151767298633268846} + - component: {fileID: 203059713687307857} + m_Layer: 5 + m_Name: AddDragModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7806914258719165468 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5332497817953742117} + 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: 2626221156522416171} + m_Father: {fileID: 655350030915661122} + 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: 52.076} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &151767298633268846 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5332497817953742117} + m_CullTransparentMesh: 1 +--- !u!114 &203059713687307857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5332497817953742117} + 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.254717, g: 0.1302928, b: 0, a: 0.50980395} + 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!1 &6261024293022658861 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8677491949241970153} + - component: {fileID: 2038467865358868612} + - component: {fileID: 3825194714244919165} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8677491949241970153 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6261024293022658861} + 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: 3912126287803504759} + - {fileID: 8253464402345922966} + - {fileID: 655350030915661122} + m_Father: {fileID: 6176751824365673} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 300, y: 500} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2038467865358868612 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6261024293022658861} + m_CullTransparentMesh: 1 +--- !u!114 &3825194714244919165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6261024293022658861} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0.8549965, b: 0.6084906, 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: 21300000, guid: dfa4e4e0aee0aeb4187bd67c0ffd1627, type: 3} + 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!1 &7569382165667351032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8829334285660995281} + - component: {fileID: 8357549203827598710} + - component: {fileID: 4938896768314717319} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8829334285660995281 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7569382165667351032} + 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: 3124401944828634975} + 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: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8357549203827598710 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7569382165667351032} + m_CullTransparentMesh: 1 +--- !u!114 &4938896768314717319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7569382165667351032} + 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!1 &7592510649635312788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 655350030915661122} + m_Layer: 5 + m_Name: Footer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &655350030915661122 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7592510649635312788} + 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: 7806914258719165468} + - {fileID: 3758179776157591986} + - {fileID: 4783555877727300176} + - {fileID: 2478310119011935285} + m_Father: {fileID: 8677491949241970153} + 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: 0} + m_SizeDelta: {x: 0, y: 119.3695} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &7606385198056151632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3758179776157591986} + - component: {fileID: 3173593261660405258} + - component: {fileID: 5160518466044742348} + - component: {fileID: 8354992549510832687} + m_Layer: 5 + m_Name: AddModelButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3758179776157591986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7606385198056151632} + 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: 4954468787562871857} + m_Father: {fileID: 655350030915661122} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -40, y: 3} + m_SizeDelta: {x: 90, y: 30} + m_Pivot: {x: 1, y: 0} +--- !u!222 &3173593261660405258 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7606385198056151632} + m_CullTransparentMesh: 1 +--- !u!114 &5160518466044742348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7606385198056151632} + 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!114 &8354992549510832687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7606385198056151632} + 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: 5160518466044742348} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8531773350676928432 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8170520537868271265} + - component: {fileID: 1160140412083872682} + - component: {fileID: 3635090920399094263} + - component: {fileID: 7046504183594226008} + - component: {fileID: 2085481415572081245} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8170520537868271265 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8531773350676928432} + 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: 8468455173986192046} + 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!222 &1160140412083872682 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8531773350676928432} + m_CullTransparentMesh: 1 +--- !u!114 &3635090920399094263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8531773350676928432} + 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: Enter text... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: a4ac5cd8892e24e4790c00e0ef00a927, type: 2} + m_sharedMaterial: {fileID: 3991398196324383077, guid: a4ac5cd8892e24e4790c00e0ef00a927, 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: 11.7 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 3 + 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_TextWrappingMode: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 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!114 &7046504183594226008 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8531773350676928432} + 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 &2085481415572081245 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8531773350676928432} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StringReference: + m_TableReference: + m_TableCollectionName: GUID:e0bc4458d73676a429c1b840d5dbc577 + m_TableEntryReference: + m_KeyId: 5074280786890752 + m_Key: + m_FallbackState: 0 + m_WaitForCompletion: 0 + m_LocalVariables: [] + m_FormatArguments: [] + m_UpdateString: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3635090920399094263} + m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro + m_MethodName: set_text + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 1 + references: + version: 2 + RefIds: [] +--- !u!1 &8920519597367332187 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8253464402345922966} + m_Layer: 5 + m_Name: Contents + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8253464402345922966 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8920519597367332187} + 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: 624152497545794938} + m_Father: {fileID: 8677491949241970153} + 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: 42.184} + m_SizeDelta: {x: 0, y: -154.37} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/uDesktopMascot/Resources/UI/Dialog/SelectModelDialog.prefab.meta b/Assets/uDesktopMascot/Resources/UI/Dialog/SelectModelDialog.prefab.meta new file mode 100644 index 00000000..6b523183 --- /dev/null +++ b/Assets/uDesktopMascot/Resources/UI/Dialog/SelectModelDialog.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 94a80ad14c747e34e86656c93692640f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/uDesktopMascot/Resources/UI/Dialog/TabletMenuDialog.prefab b/Assets/uDesktopMascot/Resources/UI/Dialog/TabletMenuDialog.prefab index a242e6de..76ca809c 100644 --- a/Assets/uDesktopMascot/Resources/UI/Dialog/TabletMenuDialog.prefab +++ b/Assets/uDesktopMascot/Resources/UI/Dialog/TabletMenuDialog.prefab @@ -742,6 +742,10 @@ PrefabInstance: propertyPath: m_Name value: Alarm objectReference: {fileID: 0} + - target: {fileID: 3452299637799663405, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4791987971422063645, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -985,6 +989,10 @@ PrefabInstance: propertyPath: m_Name value: Camera objectReference: {fileID: 0} + - target: {fileID: 3452299637799663405, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4791987971422063645, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -1199,7 +1207,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 648360911962570205, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Enabled - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 648360911962570205, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_fontSize @@ -1209,6 +1217,10 @@ PrefabInstance: propertyPath: m_Name value: SelectModel objectReference: {fileID: 0} + - target: {fileID: 3452299637799663405, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 4791987971422063645, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -1291,7 +1303,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7075264929463694279, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Interactable - value: 0 + value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -1330,6 +1342,10 @@ PrefabInstance: propertyPath: m_Name value: Achievements objectReference: {fileID: 0} + - target: {fileID: 3452299637799663405, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4791987971422063645, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -1820,6 +1836,10 @@ PrefabInstance: propertyPath: m_Name value: Call objectReference: {fileID: 0} + - target: {fileID: 3452299637799663405, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4791987971422063645, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -1930,6 +1950,10 @@ PrefabInstance: propertyPath: m_Name value: Trump objectReference: {fileID: 0} + - target: {fileID: 3452299637799663405, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4791987971422063645, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -2040,6 +2064,10 @@ PrefabInstance: propertyPath: m_Name value: Game objectReference: {fileID: 0} + - target: {fileID: 3452299637799663405, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4791987971422063645, guid: 70f01b9cfb37a80488367e9195bb3326, type: 3} propertyPath: m_Pivot.x value: 0.5 diff --git a/Assets/uDesktopMascot/Scripts/Character/CharacterManager.cs b/Assets/uDesktopMascot/Scripts/Character/CharacterManager.cs index 2a4bb1bf..2b17d3a2 100644 --- a/Assets/uDesktopMascot/Scripts/Character/CharacterManager.cs +++ b/Assets/uDesktopMascot/Scripts/Character/CharacterManager.cs @@ -11,13 +11,8 @@ namespace uDesktopMascot /// /// モデルのモーションを制御するクラス /// - public partial class CharacterManager : MonoBehaviour + public partial class CharacterManager : SingletonMonoBehaviour { - /// - /// モデルのアニメーター - /// - private Animator _modelAnimator; - /// /// ウィンドウ移動ハンドラ /// @@ -29,9 +24,14 @@ public partial class CharacterManager : MonoBehaviour private MenuPresenter _menuPresenter; /// - /// モデルのゲームオブジェクト + /// キャラクターモデル /// - private GameObject _model; + private CharacterModel _characterModel; + + /// + /// 現在のVRM情報 + /// + public LoadedVRMInfo CurrentVrmInfo => _characterModel.CurrentVrmInfo; /// /// メインカメラ @@ -43,21 +43,11 @@ public partial class CharacterManager : MonoBehaviour /// private CancellationTokenSource _cancellationTokenSource; - /// - /// 初期化済みかどうか - /// - private bool _isInitialized = false; - - /// - /// キャラクターのアニメーションコントローラ - /// - private CharacterAnimationController _characterAnimationController; - /// /// マウスがドラッグ中かどうか /// private bool _isDragging = false; - + /// /// マウスがモデルをドラッグ中かどうか /// @@ -78,10 +68,12 @@ public partial class CharacterManager : MonoBehaviour /// private Vector2 _startDragPosition; - private void Awake() + private protected override void Awake() { + base.Awake(); _mainCamera = Camera.main; _cancellationTokenSource = new CancellationTokenSource(); + _characterModel = new CharacterModel(); } private void OnEnable() @@ -91,7 +83,7 @@ private void OnEnable() InputController.Instance.UI.Click.canceled += OnClickCanceled; InputController.Instance.UI.Hold.performed += OnHoldPerformed; - + InputController.Instance.UI.RightClick.started += OnRightClick; Application.wantsToQuit += OnWantsToQuit; @@ -104,7 +96,7 @@ private void OnDisable() InputController.Instance.UI.Click.canceled -= OnClickCanceled; InputController.Instance.UI.Hold.performed -= OnHoldPerformed; - + InputController.Instance.UI.RightClick.started -= OnRightClick; Application.wantsToQuit -= OnWantsToQuit; @@ -124,13 +116,14 @@ private async UniTaskVoid InitModel() { try { - _model = await LoadCharacterModel.LoadModel(_cancellationTokenSource.Token); - + _characterModel.CurrentVrmInfo = await LoadCharacterModel.LoadModel(_cancellationTokenSource.Token); + await UniTask.SwitchToMainThread(); - + // モデルの初期調節 - OnModelLoaded(_model); - + OnModelLoaded(_characterModel.CurrentVrmInfo.Model); + + _characterModel.IsInitialized = true; } catch (Exception e) { Log.Error($"モデルの初期化中にエラーが発生しました: {e.Message}"); @@ -139,7 +132,7 @@ private async UniTaskVoid InitModel() private void Update() { - if (!_isInitialized) + if (!_characterModel.IsInitialized || !_characterModel.IsModelLoaded) { return; } @@ -147,7 +140,8 @@ private void Update() #if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN // モデルのスクリーン座標を取得 - var modelScreenPos = ScreenUtility.GetModelScreenPosition(_mainCamera, _model.transform); + var modelScreenPos = + ScreenUtility.GetModelScreenPosition(_mainCamera, _characterModel.CurrentModelContainer.transform); // エクスプローラーウィンドウの位置を取得 var explorerWindows = ExplorerWindowDetector.GetExplorerWindows(); @@ -180,14 +174,12 @@ private void Update() } #endif - // _characterAnimationController.Update(); - // モーションを切り替える if (_isDragging && (_uniWindowMoveHandle.IsDragging || _isDraggingModel)) { // ドラッグ中はハンギングモーション(ぶら下がりモーション) - _modelAnimator.SetBool(Const.IsSitting, false); - _modelAnimator.SetBool(Const.IsDragging, true); + _characterModel.ModelAnimator.SetBool(Const.IsSitting, false); + _characterModel.ModelAnimator.SetBool(Const.IsDragging, true); if (!_isHolding) { @@ -197,12 +189,11 @@ private void Update() // ホールド中のボイスを再生 VoiceController.Instance.PlayHoldVoice(); } - } else { - _modelAnimator.SetBool(Const.IsDragging, false); + _characterModel.ModelAnimator.SetBool(Const.IsDragging, false); // 座りモーションまたは立ちモーションに切り替え - _modelAnimator.SetBool(Const.IsSitting, false); + _characterModel.ModelAnimator.SetBool(Const.IsSitting, false); if (_isHolding) { @@ -216,14 +207,23 @@ private void Update() /// 初期ロードのモデルの表示後の調節 /// /// - private void OnModelLoaded(GameObject model) + /// + public void OnModelLoaded(GameObject model, bool isReplaceModel = false) { + _characterModel.IsModelLoaded = false; + + // 既存のモデルがある場合は削除 + if (_characterModel.CurrentModelContainer != null && isReplaceModel) + { + Destroy(_characterModel.CurrentModelContainer); + } + // モデルを包む空のゲームオブジェクトを作成 GameObject modelContainer = new GameObject("ModelContainer"); // モデルを子オブジェクトに設定 model.transform.SetParent(modelContainer.transform, false); - + // モデルコンテナをカメラの前方に配置 Vector3 cameraPosition = _mainCamera.transform.position; Vector3 cameraForward = _mainCamera.transform.forward; @@ -232,50 +232,56 @@ private void OnModelLoaded(GameObject model) // モデルコンテナをカメラの方向に向ける modelContainer.transform.LookAt(cameraPosition, Vector3.up); - + var characterApplicationSettings = ApplicationSettings.Instance.Character; // モデルのスケールを調整(必要に応じて変更) modelContainer.transform.localScale = Vector3.one * characterApplicationSettings.Scale; // モデルコンテナの相対位置を設定 - modelContainer.transform.position += new Vector3(characterApplicationSettings.PositionX, characterApplicationSettings.PositionY, characterApplicationSettings.PositionZ); - + modelContainer.transform.position += new Vector3(characterApplicationSettings.PositionX, + characterApplicationSettings.PositionY, characterApplicationSettings.PositionZ); + // モデルコンテナの相対回転を設定 var currentRotation = modelContainer.transform.rotation.eulerAngles; - modelContainer.transform.rotation = Quaternion.Euler(currentRotation.x + characterApplicationSettings.RotationX, currentRotation.y + characterApplicationSettings.RotationY, currentRotation.z + characterApplicationSettings.RotationZ); - - Log.Info("キャラクター設定: スケール {0}, 位置 {1}, 回転 {2}", characterApplicationSettings.Scale, modelContainer.transform.position, modelContainer.transform.rotation.eulerAngles); + modelContainer.transform.rotation = Quaternion.Euler( + currentRotation.x + characterApplicationSettings.RotationX, + currentRotation.y + characterApplicationSettings.RotationY, + currentRotation.z + characterApplicationSettings.RotationZ); + + Log.Info("キャラクター設定: スケール {0}, 位置 {1}, 回転 {2}", characterApplicationSettings.Scale, + modelContainer.transform.position, modelContainer.transform.rotation.eulerAngles); // モデルコンテナをフィールドに保持 - _model = modelContainer; + _characterModel.CurrentModelContainer = modelContainer; // アニメータの取得と設定 - _modelAnimator = _model.GetComponentInChildren(); - - if(_modelAnimator == null) + _characterModel.ModelAnimator = _characterModel.CurrentModelContainer.GetComponentInChildren(); + + if (_characterModel.ModelAnimator == null) { Log.Debug("Animatorが見つからなかったため、新しく追加します。"); - _modelAnimator = model.AddComponent(); + _characterModel.ModelAnimator = model.AddComponent(); } // モデルからAvatarを取得して設定 var avatar = CreateAvatarFromModel(model); if (avatar != null) { - _modelAnimator.avatar = avatar; + _characterModel.ModelAnimator.avatar = avatar; Log.Info("モデルからAvatarを生成し、Animatorに設定しました。"); } else { Log.Warning("モデルからAvatarを生成できませんでした。アニメーションが正しく再生されない可能性があります。"); } - + // アニメーションコントローラーを設定 - LoadVRM.UpdateAnimationController(_modelAnimator); + LoadVRM.UpdateAnimationController(_characterModel.ModelAnimator); + - _isInitialized = true; + _characterModel.IsModelLoaded = true; } - + /// /// モデルからAvatarを生成します。 /// @@ -341,7 +347,7 @@ private void OnClickCanceled(InputAction.CallbackContext context) _isDragging = false; // アニメーターのパラメータをリセット - _modelAnimator.SetBool(Const.IsDragging, false); + _characterModel.ModelAnimator.SetBool(Const.IsDragging, false); } /// @@ -356,13 +362,12 @@ private void OnRightClick(InputAction.CallbackContext context) _menuPresenter = new MenuPresenter(menuDialog); } - if(_menuPresenter.IsOpened) + if (_menuPresenter.IsOpened) { _menuPresenter.Hide(); - } - else + } else { - _menuPresenter.Show(_model.transform.position); + _menuPresenter.Show(_characterModel.CurrentModelContainer.transform.position); } } @@ -409,7 +414,6 @@ private async UniTaskVoid HandleApplicationQuit(CancellationToken cancellationTo private void OnDestroy() { _menuPresenter?.Dispose(); - _characterAnimationController?.Dispose(); _cancellationTokenSource?.Cancel(); _cancellationTokenSource?.Dispose(); } diff --git a/Assets/uDesktopMascot/Scripts/Character/CharacterModel.cs b/Assets/uDesktopMascot/Scripts/Character/CharacterModel.cs new file mode 100644 index 00000000..e02dbafa --- /dev/null +++ b/Assets/uDesktopMascot/Scripts/Character/CharacterModel.cs @@ -0,0 +1,38 @@ +using UnityEngine; +using UniVRM10; + +namespace uDesktopMascot +{ + /// + /// キャラクターモデル + /// + public class CharacterModel + { + /// + /// 現在のmodelContainer + /// + public GameObject CurrentModelContainer { get; set; } + + /// + /// 現在のVRM情報 + /// + public LoadedVRMInfo CurrentVrmInfo { get; set; } + + /// + /// モデルのアニメーター + /// + public Animator ModelAnimator { get; set; } + + /// + /// 初期化済みかどうか + /// + public bool IsInitialized { get; set; } = false; + + /// + /// モデルがロード済みかどうか + /// + /// + public bool IsModelLoaded { get; set; } = false; + + } +} \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/Character/CharacterModel.cs.meta b/Assets/uDesktopMascot/Scripts/Character/CharacterModel.cs.meta new file mode 100644 index 00000000..8e7920ec --- /dev/null +++ b/Assets/uDesktopMascot/Scripts/Character/CharacterModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 096cffe105294b3ba29fd2965ba3c2c5 +timeCreated: 1738903079 \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/Common/Constant.DialogName.cs b/Assets/uDesktopMascot/Scripts/Common/Constant.DialogName.cs index 7fde4ac1..1757032c 100644 --- a/Assets/uDesktopMascot/Scripts/Common/Constant.DialogName.cs +++ b/Assets/uDesktopMascot/Scripts/Common/Constant.DialogName.cs @@ -19,5 +19,10 @@ public partial class Constant /// AIチャットダイアログ /// public const string AIChatDialog = "AIChatDialog"; + + /// + /// モデルの追加と選択ダイアログ + /// + public const string SelectModelDialog = "SelectModelDialog"; } } \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/Common/Constant.cs b/Assets/uDesktopMascot/Scripts/Common/Constant.cs index bf975eed..5a15cd3b 100644 --- a/Assets/uDesktopMascot/Scripts/Common/Constant.cs +++ b/Assets/uDesktopMascot/Scripts/Common/Constant.cs @@ -16,5 +16,10 @@ public partial class Constant /// UI Animation デフォルトのイージング /// public const Ease UIAnimationDefaultEase = Ease.OutCubic; + + /// + /// デフォルトのVRMファイル名 + /// + public const string DefaultVrmFileName = "DefaultModel/DefaultModel"; } } \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/Menu/MenuDialog.cs b/Assets/uDesktopMascot/Scripts/Menu/MenuDialog.cs index 23159085..c6035983 100644 --- a/Assets/uDesktopMascot/Scripts/Menu/MenuDialog.cs +++ b/Assets/uDesktopMascot/Scripts/Menu/MenuDialog.cs @@ -58,11 +58,6 @@ public class MenuDialog : DialogBase /// public Action OnHelpAction { get; set; } - /// - /// モデル設定ボタンのクリックイベント - /// - public Action OnModelSettingAction { get; set; } - /// /// アプリケーション設定ボタンのクリックイベント /// @@ -93,12 +88,20 @@ private protected override void Awake() private void SetButtonEvent() { helpButton.onClick.AddListener(() => OnHelpAction?.Invoke()); - modelSettingButton.onClick.AddListener(() => OnModelSettingAction?.Invoke()); - appSettingButton.onClick.AddListener(() => OnAppSettingAction?.Invoke()); + modelSettingButton.onClick.AddListener(OnSelectModelAction); + appSettingButton.onClick.AddListener( () => OnAppSettingAction?.Invoke()); quitButton.onClick.AddListener(() => OnCloseAction?.Invoke()); webUIButton.onClick.AddListener(() => OnWebUIAction?.Invoke()); aiChatButton.onClick.AddListener(OnAiChatAction); } + + /// + /// モデル選択画面を開く + /// + private void OnSelectModelAction() + { + UIManager.Instance.PushDialog(Constant.SelectModelDialog); + } /// /// AIチャット機能を開く diff --git a/Assets/uDesktopMascot/Scripts/Menu/MenuPresenter.cs b/Assets/uDesktopMascot/Scripts/Menu/MenuPresenter.cs index 472c3a0a..251993cc 100644 --- a/Assets/uDesktopMascot/Scripts/Menu/MenuPresenter.cs +++ b/Assets/uDesktopMascot/Scripts/Menu/MenuPresenter.cs @@ -46,10 +46,6 @@ public MenuPresenter(MenuDialog menuDialog) _cancellationTokenSource = new CancellationTokenSource(); menuDialog.OnHelpAction = OpenHelp; - menuDialog.OnModelSettingAction = () => - { - Log.Debug("Open Model Setting"); - }; menuDialog.OnAppSettingAction = OpenAppSetting; menuDialog.OnWebUIAction = OpenWebUI; menuDialog.OnCloseAction = CloseApp; @@ -320,7 +316,6 @@ public void Dispose() #endif _menuDialog.OnHelpAction = null; - _menuDialog.OnModelSettingAction = null; _menuDialog.OnAppSettingAction = null; _menuDialog.OnCloseAction = null; diff --git a/Assets/uDesktopMascot/Scripts/SelectModel.meta b/Assets/uDesktopMascot/Scripts/SelectModel.meta new file mode 100644 index 00000000..b9c546ee --- /dev/null +++ b/Assets/uDesktopMascot/Scripts/SelectModel.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0a59f6abae7d4870a69d5a595e44ab3d +timeCreated: 1738858336 \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/SelectModel/ModelInfo.cs b/Assets/uDesktopMascot/Scripts/SelectModel/ModelInfo.cs new file mode 100644 index 00000000..04d115ae --- /dev/null +++ b/Assets/uDesktopMascot/Scripts/SelectModel/ModelInfo.cs @@ -0,0 +1,70 @@ +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace uDesktopMascot +{ + /// + /// モデル情報 + /// + public class ModelInfo : MonoBehaviour + { + /// + /// モデル名を表示するテキスト + /// + [SerializeField] private TextMeshProUGUI modelNameText; + + /// + /// モデル選択ボタン + /// + [SerializeField] private Button selectButton; + + /// + /// 背景イメージ + /// + [SerializeField] private Image backgroundFrameImage; + + /// + /// サムネイルイメージ + /// + [SerializeField] RawImage thumbnailImage; + + /// + /// 初期化 + /// + public void Initialize(string modelName, Texture2D thumbnail, UnityEngine.Events.UnityAction onClickAction) + { + // モデル名を設定 + modelNameText.text = modelName; + + // サムネイルを設定 + thumbnailImage.texture = thumbnail; + + // ボタンのクリックイベントを設定 + selectButton.onClick.AddListener(onClickAction); + } + + /// + /// 選択状態を設定 + /// + /// + public void SetSelected(bool isSelected) + { + // 背景色を変更 + backgroundFrameImage.enabled = isSelected; + } + + // モデル情報を更新するメソッドを追加 + public void UpdateModelInfo(string modelName, Texture2D thumbnail) + { + modelNameText.text = modelName; + thumbnailImage.texture = thumbnail; + } + + private void OnDestroy() + { + // イベントリスナーを解除 + selectButton.onClick.RemoveAllListeners(); + } + } +} \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/SelectModel/ModelInfo.cs.meta b/Assets/uDesktopMascot/Scripts/SelectModel/ModelInfo.cs.meta new file mode 100644 index 00000000..b1cbd6c7 --- /dev/null +++ b/Assets/uDesktopMascot/Scripts/SelectModel/ModelInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7f29c8d40bcc4f0cb5e4d291c601bf61 +timeCreated: 1738858366 \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/SelectModel/SelectModelDialog.cs b/Assets/uDesktopMascot/Scripts/SelectModel/SelectModelDialog.cs new file mode 100644 index 00000000..1293cf6e --- /dev/null +++ b/Assets/uDesktopMascot/Scripts/SelectModel/SelectModelDialog.cs @@ -0,0 +1,141 @@ +using System.IO; +using System.Threading; +using UnityEngine; +using Cysharp.Threading.Tasks; +using Unity.Logging; + +namespace uDesktopMascot +{ + /// + /// モデルの追加と選択ダイアログ + /// + public class SelectModelDialog : DialogBase + { + /// + /// ModelInfoのPrefab + /// + [SerializeField] private ModelInfo modelInfoPrefab; + + /// + /// ScrollViewのContent + /// + [SerializeField] private Transform contentTransform; + + /// + /// 現在ロード中または表示中のモデル + /// + private ModelInfo _currentModel; + + private CancellationTokenSource _cancellationTokenSource; + + private protected override void Awake() + { + base.Awake(); + _cancellationTokenSource = new CancellationTokenSource(); + } + + private async void Start() + { + await AddDefaultModelList(); + // モデルリストをロード + LoadModelListAsync().Forget(); + } + + /// + /// モデルリストを非同期でロードし、表示する + /// + private async UniTaskVoid LoadModelListAsync() + { + // StreamingAssetsフォルダ内のVRMファイルを取得 + string streamingAssetsPath = Application.streamingAssetsPath; + string[] vrmFiles = Directory.GetFiles(streamingAssetsPath, "*.vrm", SearchOption.AllDirectories); + + foreach (string vrmFile in vrmFiles) + { + // ファイルパスをキャプチャ + string filePath = vrmFile; + + // 非同期でメタデータを読み込むタスクを開始 + var loadMetaTask = LoadVRM.LoadVrmMetaAsync(filePath); + + // メインスレッドでModelInfoアイテムを生成 + await UniTask.SwitchToMainThread(); + + var item = Instantiate(modelInfoPrefab, contentTransform); + + item.Initialize("モデル情報を取得中...", null, () => OnModelSelected(item, vrmFile).Forget()); + + // 他の処理を続行し、メタデータの読み込みを待つ + var (modelName, thumbnail) = await loadMetaTask; + + // メインスレッドでUIを更新 + await UniTask.SwitchToMainThread(); + + // モデル情報を更新 + item.UpdateModelInfo(modelName, thumbnail); + + // 各ファイルの処理間で待機して、他の処理を行えるようにする + await UniTask.Yield(); + } + } + + /// + /// デフォルトのモデルリストを追加 + /// + private async UniTask AddDefaultModelList() + { + // デフォルトのモデルリストを追加 + await UniTask.SwitchToMainThread(); + var item = Instantiate(modelInfoPrefab, contentTransform); + item.Initialize(CharacterManager.Instance.CurrentVrmInfo.ModelName, + CharacterManager.Instance.CurrentVrmInfo.ThumbnailTexture, + () => OnModelSelected(item).Forget()); + _currentModel = item; + _currentModel.SetSelected(true); + } + + /// + /// モデルが選択されたときの処理 + /// + /// + /// 選択されたモデルのパス + private async UniTaskVoid OnModelSelected(ModelInfo modelInfo, string path = null) + { + modelInfo.SetSelected(true); + _currentModel?.SetSelected(false); + _currentModel = modelInfo; + // 既存のモデルがある場合は削除 + if (_currentModel != null) + { + Destroy(_currentModel); + } + + LoadedVRMInfo model; + // 指定されたモデルをロード + if (path == null) + { + var defaultModel = await LoadVRM.LoadDefaultModel(); + + model = new LoadedVRMInfo(defaultModel.gameObject, defaultModel.Vrm.Meta.Name, defaultModel.Vrm.Meta.Thumbnail); + } else + { + model = await LoadVRM.LoadModelAsync(path, _cancellationTokenSource.Token); + } + + if (model != null) + { + // CharacterManagerにモデルを渡す + CharacterManager.Instance.OnModelLoaded(model.Model, true); + } else + { + Log.Error($"Failed to load Model: {path}"); + } + } + + private void OnDestroy() + { + _cancellationTokenSource?.Cancel(); + _cancellationTokenSource?.Dispose(); + } + } +} \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/SelectModel/SelectModelDialog.cs.meta b/Assets/uDesktopMascot/Scripts/SelectModel/SelectModelDialog.cs.meta new file mode 100644 index 00000000..8343bb35 --- /dev/null +++ b/Assets/uDesktopMascot/Scripts/SelectModel/SelectModelDialog.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 779c9b0de9c44fffbb2195e538732aec +timeCreated: 1738853850 \ No newline at end of file diff --git a/Assets/uDesktopMascot/Scripts/Utility/LoadCharacterModel.cs b/Assets/uDesktopMascot/Scripts/Utility/LoadCharacterModel.cs index 2bdec5cb..ada1c018 100644 --- a/Assets/uDesktopMascot/Scripts/Utility/LoadCharacterModel.cs +++ b/Assets/uDesktopMascot/Scripts/Utility/LoadCharacterModel.cs @@ -29,12 +29,12 @@ private enum ModelType /// /// /// - public static async UniTask LoadModel(CancellationToken cancellationToken) + public static async UniTask LoadModel(CancellationToken cancellationToken) { // 設定ファイルからキャラクター情報の取得 var characterSettings = ApplicationSettings.Instance.Character; - GameObject model = null; + LoadedVRMInfo loadedVrmInfo = null; // モデルの種類を判定 var modelType = GetModelType(characterSettings.ModelPath); @@ -45,13 +45,14 @@ public static async UniTask LoadModel(CancellationToken cancellation { case ModelType.FBX: // FBXモデルの読み込み - model = await LoadFBX.LoadModelAsync(characterSettings.ModelPath, cancellationToken); + var model = await LoadFBX.LoadModelAsync(characterSettings.ModelPath, cancellationToken); + loadedVrmInfo = new LoadedVRMInfo(model, null, null); break; case ModelType.VRM: case ModelType.GLB: case ModelType.GLTF: // VRM、GLB、GLTFモデルの読み込み - model = await LoadVRM.LoadModelAsync(characterSettings.ModelPath, cancellationToken); + loadedVrmInfo = await LoadVRM.LoadModelAsync(characterSettings.ModelPath, cancellationToken); break; default: Log.Error("サポートされていないモデル形式です: {0}", characterSettings.ModelPath); @@ -64,12 +65,14 @@ public static async UniTask LoadModel(CancellationToken cancellation } // モデルのロードが失敗した場合、デフォルトモデルをロードする - if (model == null) + if (loadedVrmInfo == null || loadedVrmInfo.Model == null) { Log.Warning("指定されたモデルのロードに失敗したため、デフォルトモデルをロードします。"); - model = LoadVRM.LoadDefaultModel(); + var defaultModel = await LoadVRM.LoadDefaultModel(); + + loadedVrmInfo = new LoadedVRMInfo(defaultModel.gameObject, defaultModel.Vrm.Meta.Name, defaultModel.Vrm.Meta.Thumbnail); - if (model == null) + if (loadedVrmInfo.Model == null) { Log.Error("デフォルトモデルのロードにも失敗しました。"); return null; @@ -79,7 +82,7 @@ public static async UniTask LoadModel(CancellationToken cancellation if (characterSettings.UseLilToon) { // シェーダーをlilToonに置き換える - bool shaderReplaceSuccess = ReplaceShadersWithLilToon(model); + bool shaderReplaceSuccess = ReplaceShadersWithLilToon(loadedVrmInfo.Model); if (!shaderReplaceSuccess) { @@ -87,7 +90,7 @@ public static async UniTask LoadModel(CancellationToken cancellation } } - return model; + return loadedVrmInfo; } /// diff --git a/Assets/uDesktopMascot/Scripts/Utility/LoadVRM.cs b/Assets/uDesktopMascot/Scripts/Utility/LoadVRM.cs index c925a73c..7972a5fb 100644 --- a/Assets/uDesktopMascot/Scripts/Utility/LoadVRM.cs +++ b/Assets/uDesktopMascot/Scripts/Utility/LoadVRM.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Linq; using System.Threading; using Cysharp.Threading.Tasks; using UnityEngine; @@ -16,11 +15,6 @@ namespace uDesktopMascot /// public static class LoadVRM { - /// - /// デフォルトのVRMファイル名 - /// - private const string DefaultVrmFileName = "DefaultModel/DefaultModel"; - /// /// アニメーションコントローラーを設定 /// @@ -52,12 +46,10 @@ public static void UpdateAnimationController(Animator animator) /// /// モデルをロードする /// - public static async UniTask LoadModelAsync(string modelPath,CancellationToken cancellationToken) + public static async UniTask LoadModelAsync(string modelPath, CancellationToken cancellationToken) { try { - GameObject model = null; - if (!string.IsNullOrEmpty(modelPath)) { Log.Info($"指定されたモデルパス: {modelPath}"); @@ -70,7 +62,7 @@ public static async UniTask LoadModelAsync(string modelPath,Cancella { Log.Info($"指定されたモデルファイルをロードします: {modelPath}"); // 指定されたモデルをロード - model = await LoadAndDisplayModel(fullModelPath, cancellationToken); + return await LoadAndDisplayModel(fullModelPath, cancellationToken); } else { Log.Warning($"指定されたモデルファイルが見つかりませんでした: {modelPath}"); @@ -79,33 +71,45 @@ public static async UniTask LoadModelAsync(string modelPath,Cancella } else { Log.Info("モデルパスが指定されていません。"); + return null; } - - return model; } catch (Exception e) { Log.Error($"モデルの読み込みまたは表示中にエラーが発生しました: {e.Message}"); return null; } + + return null; } /// /// デフォルトのVRMモデルをロードして表示する /// - public static GameObject LoadDefaultModel() + public static async UniTask LoadDefaultModel() { // ResourcesフォルダからPrefabをロード - var prefab = Resources.Load(DefaultVrmFileName); - if (prefab == null) + var request = Resources.LoadAsync(Constant.DefaultVrmFileName); + await request; + + if (request.asset == null) { - Log.Error($"デフォルトのPrefabがResourcesフォルダに見つかりません: {DefaultVrmFileName}.prefab"); + Log.Error($"デフォルトのPrefabがResourcesフォルダに見つかりません: {Constant.DefaultVrmFileName}.prefab"); return null; } // Prefabをインスタンス化 - var model = Object.Instantiate(prefab); + var prefab = request.asset as GameObject; + var modelGameObject = GameObject.Instantiate(prefab); + + // Vrm10Instance コンポーネントを取得 + var model = modelGameObject.GetComponent(); + if (model == null) + { + Log.Warning( + $"インスタンス化したGameObjectにVrm10Instanceコンポーネントがアタッチされていません: {Constant.DefaultVrmFileName}.prefab"); + } - Log.Debug("デフォルトモデルのロードと表示が完了しました: " + DefaultVrmFileName); + Log.Debug("デフォルトモデルのロードと表示が完了しました: " + Constant.DefaultVrmFileName); return model; } @@ -115,7 +119,8 @@ public static GameObject LoadDefaultModel() /// /// モデルファイルのパス /// - private static async UniTask LoadAndDisplayModel(string path, CancellationToken cancellationToken) + private static async UniTask LoadAndDisplayModel(string path, + CancellationToken cancellationToken) { return await LoadAndDisplayModelFromPath(path, cancellationToken); } @@ -126,18 +131,22 @@ private static async UniTask LoadAndDisplayModel(string path, Cancel /// /// /// - private static async UniTask LoadAndDisplayModelFromPath(string path, + private static async UniTask LoadAndDisplayModelFromPath(string path, CancellationToken cancellationToken) { // ファイルの拡張子を取得 var extension = Path.GetExtension(path).ToLowerInvariant(); GameObject model = null; + string title = string.Empty; + Texture2D thumbnailTexture = null; if (extension == ".vrm") { // VRMファイルをロード(VRM 0.x および 1.x に対応) Vrm10Instance instance = await Vrm10.LoadPathAsync(path, canLoadVrm0X: true, ct: cancellationToken); + title = instance.Vrm.Meta.Name; + thumbnailTexture = instance.Vrm.Meta.Thumbnail; // モデルのGameObjectを取得 model = instance.gameObject; @@ -159,7 +168,116 @@ private static async UniTask LoadAndDisplayModelFromPath(string path Log.Info("モデルのロードと表示が完了しました: " + path); - return model; + return new LoadedVRMInfo(model, title, thumbnailTexture); + } + + /// + /// VRMファイルのメタ情報を取得 + /// + /// + /// + public static async UniTask<(string title, Texture2D thumbnailTexture)> LoadVrmMetaAsync(string path) + { + // VRMファイルをバイト配列として読み込む + var bytes = await File.ReadAllBytesAsync(path); + + // GLBデータとしてパース + var parser = new GlbLowLevelParser(path, bytes); + using (var gltfData = parser.Parse()) + { + // VRM 1.0としてパースを試みる + var vrm10Data = Vrm10Data.Parse(gltfData); + if (vrm10Data != null) + { + // VRM 1.0のメタ情報を取得 + var meta = vrm10Data.VrmExtension.Meta; + string title = meta.Name; + + // サムネイル画像を取得 + Texture2D thumbnailTexture = null; + if (meta.ThumbnailImage.HasValue) + { + var imageIndex = meta.ThumbnailImage.Value; + thumbnailTexture = LoadTextureFromImageIndex(vrm10Data.Data, imageIndex); + } + + return (title, thumbnailTexture); + } else + { + // VRM 0.xの場合、マイグレーションを行う + using var migratedGltfData = Vrm10Data.Migrate(gltfData, out var migratedVrm10Data, out var migrationData); + if (migratedVrm10Data != null) + { + // VRM 0.xのメタ情報を取得 + var meta = migrationData?.OriginalMetaBeforeMigration; + string title = meta?.title; + + // サムネイル画像を取得 + Texture2D thumbnailTexture = null; + if (meta?.texture != null && meta.texture != -1) + { + var imageIndex = meta.texture; + thumbnailTexture = LoadTextureFromImageIndex(gltfData, imageIndex); + } + + return (title, thumbnailTexture); + } + } + } + + // メタ情報が取得できなかった場合 + return (null, null); + } + + /// + /// 画像インデックスからテクスチャをロード + /// + /// + /// + /// + private static Texture2D LoadTextureFromImageIndex(GltfData gltfData, int imageIndex) + { + var gltfImage = gltfData.GLTF.images[imageIndex]; + + byte[] imageBytes = null; + + if (!string.IsNullOrEmpty(gltfImage.uri)) + { + if (gltfImage.uri.StartsWith("data:", StringComparison.Ordinal)) + { + // Data URIから画像データを取得 + imageBytes = UriByteBuffer.ReadEmbedded(gltfImage.uri); + } else + { + // 外部ファイルの場合は対応しない + Log.Warning("External image files are not supported."); + return null; + } + } else if (gltfImage.bufferView >= 0) + { + // バッファビューから画像データを取得 + var segment = gltfData.GetBytesFromBufferView(gltfImage.bufferView); + imageBytes = segment.ToArray(); + } else + { + Log.Warning("No image data found for the texture."); + return null; + } + + if (imageBytes != null) + { + // Texture2Dを作成 + var texture = new Texture2D(2, 2); + if (texture.LoadImage(imageBytes)) + { + return texture; + } else + { + Log.Warning("Failed to load image into Texture2D."); + } + } + + return null; } /// @@ -202,4 +320,38 @@ private static async UniTask LoadGlbOrGltfModelAsync(string path) } } } + + /// + /// ロードされたVRMの情報を保持するクラス + /// + public class LoadedVRMInfo + { + /// + /// コンストラクタ + /// + /// + /// + /// + public LoadedVRMInfo(GameObject model, string modelName, Texture2D thumbnailTexture) + { + Model = model; + ModelName = modelName; + ThumbnailTexture = thumbnailTexture; + } + + /// + /// ロードされたモデルのGameObject + /// + public GameObject Model { get; private set; } + + /// + /// モデルのタイトル + /// + public string ModelName { get; private set; } + + /// + /// サムネイル画像 + /// + public Texture2D ThumbnailTexture { get; private set; } + } } \ No newline at end of file