diff --git a/1.txt b/1.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/Assets/AddressableAssetsData/link.xml b/Assets/AddressableAssetsData/link.xml new file mode 100644 index 00000000..62ce7303 --- /dev/null +++ b/Assets/AddressableAssetsData/link.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assets/AddressableAssetsData/link.xml.meta b/Assets/AddressableAssetsData/link.xml.meta new file mode 100644 index 00000000..19cc8ac3 --- /dev/null +++ b/Assets/AddressableAssetsData/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2664c414003fece4d86a470c718331e1 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cartoon UI/White Icons/White Icons/UI Icons/Pin.png.meta b/Assets/Cartoon UI/White Icons/White Icons/UI Icons/Pin.png.meta index 97bf9f4c..3acab7b0 100644 --- a/Assets/Cartoon UI/White Icons/White Icons/UI Icons/Pin.png.meta +++ b/Assets/Cartoon UI/White Icons/White Icons/UI Icons/Pin.png.meta @@ -21,7 +21,7 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 flipGreenChannel: 0 - isReadable: 0 + isReadable: 1 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 diff --git a/Assets/Localization/Tables/GameLiteralText_en-US.asset b/Assets/Localization/Tables/GameLiteralText_en-US.asset index 814348b4..9c11a38b 100644 --- a/Assets/Localization/Tables/GameLiteralText_en-US.asset +++ b/Assets/Localization/Tables/GameLiteralText_en-US.asset @@ -23,7 +23,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579959 - m_Localized: Currency amount has reached the upper limit + m_Localized: 算力数量已达到上限 m_Metadata: m_Items: [] - m_Id: 684762727190529 @@ -341,7 +341,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579961 - m_Localized: Failed to grant "Yalimengli Raw Ore" + m_Localized: Failed to grant "记忆碎片" m_Metadata: m_Items: [] - m_Id: 684762727190604 @@ -462,7 +462,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762727190694 - m_Localized: Yalimengli Raw Ore + m_Localized: 记忆碎片 m_Metadata: m_Items: [] - m_Id: 684762727190632 @@ -1420,7 +1420,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579991 - m_Localized: Currency amount has reached the upper limit + m_Localized: 算力数量已达到上限 m_Metadata: m_Items: [] - m_Id: 684762735579992 @@ -1472,13 +1472,12 @@ MonoBehaviour: code(1): operation intercepted Failed - to grant "Yalimengli Raw Ore" + to grant "记忆碎片" The server has forbidden reward distribution - Currency - amount has reached the upper limit' + \u7B97\u529B\u6570\u91CF\u5DF2\u8FBE\u5230\u4E0A\u9650' m_Metadata: m_Items: [] - m_Id: 684762735580003 @@ -2169,7 +2168,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762727191008 - m_Localized: "\u201C\u4E13\u5458\u7B49\u7EA7\u7279\u6280\u201D\n\n\u73A9\u5BB6\u6BCF\u5230\u8FBE\u4E00\u4E2A\u7B49\u7EA7\uFF0C\u53EF\u89E3\u9501\u4E00\u4E2A\u7279\u522B\u7684\u4E13\u5458\u7B49\u7EA7\u6280\u80FD\uFF0C\u8FD9\u4E9B\u6280\u80FD\u53EF\u4F5C\u7528\u4E8E\u5404\u79CD\u65B9\u9762\uFF0C\u60A8\u53EF\u4EE5\u968F\u610F\u5207\u6362\u5DF2\u89E3\u9501\u7684\u6280\u80FD\uFF0C\u83B7\u5F97\u610F\u60F3\u4E0D\u5230\u7684\u5947\u6548\u3002\n\n\u6BCF\u6B21\u5207\u6362\uFF0C\u9700\u8981\u82B1\u8D39\u6700\u5927\u91D1\u5E01\u76841%\n\uFF08\u6700\u5C11\u82B1\u8D39200\u8D27\u5E01\uFF09\u3002\u66F4\u6362\u4E00\u6B21\u4E13\u5458\u6280\u80FD\u540E\uFF0C\u987B\u7B49\u5F853\u573A\u6BD4\u8D5B\u51B7\u5374\u540E\u65B9\u53EF\u518D\u6B21\u5207\u6362\u3002" + m_Localized: "\u201C\u4E13\u5458\u7B49\u7EA7\u7279\u6280\u201D\n\n\u73A9\u5BB6\u6BCF\u5230\u8FBE\u4E00\u4E2A\u7B49\u7EA7\uFF0C\u53EF\u89E3\u9501\u4E00\u4E2A\u7279\u522B\u7684\u4E13\u5458\u7B49\u7EA7\u6280\u80FD\uFF0C\u8FD9\u4E9B\u6280\u80FD\u53EF\u4F5C\u7528\u4E8E\u5404\u79CD\u65B9\u9762\uFF0C\u60A8\u53EF\u4EE5\u968F\u610F\u5207\u6362\u5DF2\u89E3\u9501\u7684\u6280\u80FD\uFF0C\u83B7\u5F97\u610F\u60F3\u4E0D\u5230\u7684\u5947\u6548\u3002\n\n\u6BCF\u6B21\u5207\u6362\uFF0C\u9700\u8981\u82B1\u8D39\u6700\u5927\u7B97\u529B\u76841%\n\uFF08\u6700\u5C11\u82B1\u8D39200\u7B97\u529B\uFF09\u3002\u66F4\u6362\u4E00\u6B21\u4E13\u5458\u6280\u80FD\u540E\uFF0C\u987B\u7B49\u5F853\u573A\u6BD4\u8D5B\u51B7\u5374\u540E\u65B9\u53EF\u518D\u6B21\u5207\u6362\u3002" m_Metadata: m_Items: [] - m_Id: 684762727191009 @@ -7281,7 +7280,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762731385361 - m_Localized: "\u5141\u8BB8\u4F60\u4EE510\u91D1\u5E01\u8D2D\u4E701\u4E2A\u8BB0\u5FC6\u788E\u7247\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" + m_Localized: "\u5141\u8BB8\u4F60\u4EE510\u7B97\u529B\u8D2D\u4E701\u4E2A\u8BB0\u5FC6\u788E\u7247\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" m_Metadata: m_Items: [] - m_Id: 684762731385362 @@ -7293,7 +7292,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762731385364 - m_Localized: "\u5141\u8BB8\u4F60\u5C061\u4E2A\u8BB0\u5FC6\u788E\u7247\u4EE54\u91D1\u5E01\u552E\u51FA\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" + m_Localized: "\u5141\u8BB8\u4F60\u5C061\u4E2A\u8BB0\u5FC6\u788E\u7247\u4EE54\u7B97\u529B\u552E\u51FA\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" m_Metadata: m_Items: [] - m_Id: 684762731385365 @@ -7357,7 +7356,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762731385380 - m_Localized: "\u7ED3\u7B97\u65F6\uFF0C\u83B7\u5F97\u5076\u50CF\u5206\u65702\u2030\u7684\u91D1\u5E01\u3002" + m_Localized: "\u7ED3\u7B97\u65F6\uFF0C\u83B7\u5F97\u5076\u50CF\u5206\u65702\u2030\u7684\u7B97\u529B\u3002" m_Metadata: m_Items: [] - m_Id: 684762731385381 @@ -8793,7 +8792,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579333 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579334 @@ -8801,27 +8800,27 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579335 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F971000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F971000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579336 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F975000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F975000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579337 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F9710000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F9710000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579338 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F9750000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F9750000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579339 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579340 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F97500000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F97500000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579341 @@ -10781,7 +10780,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579824 - m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" + m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579825 @@ -10793,7 +10792,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579827 - m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" + m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579828 @@ -10805,7 +10804,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579830 - m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579831 @@ -10817,7 +10816,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579833 - m_Localized: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + m_Localized: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579834 @@ -11158,7 +11157,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579918 - m_Localized: "\u6D88\u8D39 2000 coins" + m_Localized: "\u6D88\u8D39 2000 \u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579919 diff --git a/Assets/Localization/Tables/GameLiteralText_zh-CN.asset b/Assets/Localization/Tables/GameLiteralText_zh-CN.asset index 79fa22e2..cc112fff 100644 --- a/Assets/Localization/Tables/GameLiteralText_zh-CN.asset +++ b/Assets/Localization/Tables/GameLiteralText_zh-CN.asset @@ -1945,7 +1945,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762727191008 - m_Localized: "\u201C\u4E13\u5458\u7B49\u7EA7\u7279\u6280\u201D\n\n\u73A9\u5BB6\u6BCF\u5230\u8FBE\u4E00\u4E2A\u7B49\u7EA7\uFF0C\u53EF\u89E3\u9501\u4E00\u4E2A\u7279\u522B\u7684\u4E13\u5458\u7B49\u7EA7\u6280\u80FD\uFF0C\u8FD9\u4E9B\u6280\u80FD\u53EF\u4F5C\u7528\u4E8E\u5404\u79CD\u65B9\u9762\uFF0C\u60A8\u53EF\u4EE5\u968F\u610F\u5207\u6362\u5DF2\u89E3\u9501\u7684\u6280\u80FD\uFF0C\u83B7\u5F97\u610F\u60F3\u4E0D\u5230\u7684\u5947\u6548\u3002\n\n\u6BCF\u6B21\u5207\u6362\uFF0C\u9700\u8981\u82B1\u8D39\u6700\u5927\u91D1\u5E01\u76841%\n\uFF08\u6700\u5C11\u82B1\u8D39200\u8D27\u5E01\uFF09\u3002\u66F4\u6362\u4E00\u6B21\u4E13\u5458\u6280\u80FD\u540E\uFF0C\u987B\u7B49\u5F853\u573A\u6BD4\u8D5B\u51B7\u5374\u540E\u65B9\u53EF\u518D\u6B21\u5207\u6362\u3002" + m_Localized: "\u201C\u4E13\u5458\u7B49\u7EA7\u7279\u6280\u201D\n\n\u73A9\u5BB6\u6BCF\u5230\u8FBE\u4E00\u4E2A\u7B49\u7EA7\uFF0C\u53EF\u89E3\u9501\u4E00\u4E2A\u7279\u522B\u7684\u4E13\u5458\u7B49\u7EA7\u6280\u80FD\uFF0C\u8FD9\u4E9B\u6280\u80FD\u53EF\u4F5C\u7528\u4E8E\u5404\u79CD\u65B9\u9762\uFF0C\u60A8\u53EF\u4EE5\u968F\u610F\u5207\u6362\u5DF2\u89E3\u9501\u7684\u6280\u80FD\uFF0C\u83B7\u5F97\u610F\u60F3\u4E0D\u5230\u7684\u5947\u6548\u3002\n\n\u6BCF\u6B21\u5207\u6362\uFF0C\u9700\u8981\u82B1\u8D39\u6700\u5927\u7B97\u529B\u76841%\n\uFF08\u6700\u5C11\u82B1\u8D39200\u7B97\u529B\uFF09\u3002\u66F4\u6362\u4E00\u6B21\u4E13\u5458\u6280\u80FD\u540E\uFF0C\u987B\u7B49\u5F853\u573A\u6BD4\u8D5B\u51B7\u5374\u540E\u65B9\u53EF\u518D\u6B21\u5207\u6362\u3002" m_Metadata: m_Items: [] - m_Id: 684762727191009 @@ -7057,7 +7057,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762731385361 - m_Localized: "\u5141\u8BB8\u4F60\u4EE510\u91D1\u5E01\u8D2D\u4E701\u4E2A\u8BB0\u5FC6\u788E\u7247\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" + m_Localized: "\u5141\u8BB8\u4F60\u4EE510\u7B97\u529B\u8D2D\u4E701\u4E2A\u8BB0\u5FC6\u788E\u7247\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" m_Metadata: m_Items: [] - m_Id: 684762731385362 @@ -7069,7 +7069,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762731385364 - m_Localized: "\u5141\u8BB8\u4F60\u5C061\u4E2A\u8BB0\u5FC6\u788E\u7247\u4EE54\u91D1\u5E01\u552E\u51FA\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" + m_Localized: "\u5141\u8BB8\u4F60\u5C061\u4E2A\u8BB0\u5FC6\u788E\u7247\u4EE54\u7B97\u529B\u552E\u51FA\u3002\u88C5\u5907\u6B64\u6280\u80FD\u65F6\u53EF\u4E8E\u5546\u5E97\u89E3\u9501\u4E00\u4E2A\u8D2D\u4E70\u9009\u9879\u3002" m_Metadata: m_Items: [] - m_Id: 684762731385365 @@ -7133,7 +7133,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762731385380 - m_Localized: "\u7ED3\u7B97\u65F6\uFF0C\u83B7\u5F97\u5076\u50CF\u5206\u65702\u2030\u7684\u91D1\u5E01\u3002" + m_Localized: "\u7ED3\u7B97\u65F6\uFF0C\u83B7\u5F97\u5076\u50CF\u5206\u65702\u2030\u7684\u7B97\u529B\u3002" m_Metadata: m_Items: [] - m_Id: 684762731385381 @@ -8569,7 +8569,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579333 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579334 @@ -8577,27 +8577,27 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579335 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F971000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F971000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579336 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F975000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F975000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579337 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F9710000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F9710000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579338 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F9750000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F9750000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579339 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F97100000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579340 - m_Localized: "\u7D2F\u8BA1\u83B7\u5F97500000\u91D1\u5E01" + m_Localized: "\u7D2F\u8BA1\u83B7\u5F97500000\u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579341 @@ -10557,7 +10557,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579824 - m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" + m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579825 @@ -10569,7 +10569,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579827 - m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" + m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579828 @@ -10581,7 +10581,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579830 - m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + m_Localized: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579831 @@ -10593,7 +10593,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579833 - m_Localized: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + m_Localized: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" m_Metadata: m_Items: [] - m_Id: 684762735579834 @@ -10934,7 +10934,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684762735579918 - m_Localized: "\u6D88\u8D39 2000 coins" + m_Localized: "\u6D88\u8D39 2000 \u7B97\u529B" m_Metadata: m_Items: [] - m_Id: 684762735579919 diff --git a/Assets/Localization/Tables/GameText_en-US.asset b/Assets/Localization/Tables/GameText_en-US.asset index b16a177e..b780c172 100644 --- a/Assets/Localization/Tables/GameText_en-US.asset +++ b/Assets/Localization/Tables/GameText_en-US.asset @@ -264,7 +264,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 684763935150139 - m_Localized: Insufficient currency + m_Localized: 算力不足 m_Metadata: m_Items: [] - m_Id: 684763935150140 diff --git a/Assets/Resources/playerdata/playerData_uniqueData.asset b/Assets/Resources/playerdata/playerData_uniqueData.asset index d410dfc2..90ad4449 100644 --- a/Assets/Resources/playerdata/playerData_uniqueData.asset +++ b/Assets/Resources/playerdata/playerData_uniqueData.asset @@ -27,4 +27,4 @@ MonoBehaviour: dushMaterial78022: 0 dushMaterial78023: 0 dushMaterial78024: 0 - firstLaunchDate: + firstLaunchDate: 2026-03-16 diff --git a/Assets/Resources/so/ally/30204_lock.asset b/Assets/Resources/so/ally/30204_limiaomiao.asset similarity index 86% rename from Assets/Resources/so/ally/30204_lock.asset rename to Assets/Resources/so/ally/30204_limiaomiao.asset index ed20177a..56ce47c3 100644 --- a/Assets/Resources/so/ally/30204_lock.asset +++ b/Assets/Resources/so/ally/30204_limiaomiao.asset @@ -10,27 +10,27 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: bdd198d96872f3b42bdfc7e262ff2eed, type: 3} - m_Name: 30204_lock + m_Name: 30204_limiaomiao m_EditorClassIdentifier: - ally_heroName: "\u6D1B\u514B" - ally_heroDesignation: "\u96C5\u8389\u68A6\u7483\u4E4B\u624B" + ally_heroName: "\u9ECE\u5999\u5999" + ally_heroDesignation: "\u6700\u5999\u7684\u89D2\u8272" ally_heroID: 30204 isUnlocked: 1 allyType: 0 obsessionTag: "\u8FC7\u6FC0\u884C\u4E3A" sourceDlcId: - ally_heroImage: {fileID: 21300000, guid: 92d84aec8bc325549bc86e20ef310b9e, type: 3} - ally_heroProfile: {fileID: 21300000, guid: 92d84aec8bc325549bc86e20ef310b9e, type: 3} - ally_heroSelectIcon: {fileID: 21300000, guid: b10782ed7cd519a408bcb7b8b4dfc884, type: 3} + ally_heroImage: {fileID: 21300000, guid: 7df561841c29f7c4495809fa26c0fd87, type: 3} + ally_heroProfile: {fileID: 21300000, guid: 7df561841c29f7c4495809fa26c0fd87, type: 3} + ally_heroSelectIcon: {fileID: 21300000, guid: 32a17cd770649ef4ba742170d95271e0, type: 3} ally_heroIcon: {fileID: 0} - ally_heroPoster: {fileID: 21300000, guid: 64d978f672317b14e9b21f7f6a555f0e, type: 3} - ally_hero_HD_image: {fileID: 21300000, guid: f27edc042c98f264492ea474acb525e8, type: 3} - ally_hero_squareProfile: {fileID: 21300000, guid: 47e3bed563854b248b684b071ccafe38, type: 3} - ally_hero_settleDisplay: {fileID: 21300000, guid: 971b271c3b69c25478ca3cd39adae7f4, type: 3} + ally_heroPoster: {fileID: 21300000, guid: 0037e2eca8c94144db3688d8d960a451, type: 3} + ally_hero_HD_image: {fileID: 21300000, guid: 3f085a9ca0d0c8b41a02c952e6a7bf02, type: 3} + ally_hero_squareProfile: {fileID: 21300000, guid: f14b64b175b40214b9e2b4ba8be24697, type: 3} + ally_hero_settleDisplay: {fileID: 21300000, guid: 4aa2a31f345485c42bd2f44b2488b7f8, type: 3} ally_heroSpineData: {fileID: 0} selectedSkinId: ally_heroThemeColor: {r: 0.10980393, g: 0.10588236, b: 0.1254902, a: 1} - ally_heroDescription: "\u6D1B\u514B\uFF0C\u8FC7\u6FC0\u884C\u4E3A\u7C7B\u6267\u5FF5\u5076\u50CF\u3002\u4ED6\u7684\u6CD5\u529B\u503C\u4E0A\u9650\u76F8\u5F53\u4E4B\u9AD8\uFF0C\u53EF\u5176\u5145\u6EE1\u540E\u91CA\u653E\u7684\u6548\u679C\u76F8\u5F53\u53EF\u89C2\uFF0C\u56E0\u4E3A\u662F\u8FC7\u6FC0\u884C\u4E3A\u7C7B\u6267\u5FF5\uFF0C\u4ED6\u53EF\u4EE5\u5BF9\u540C\u4F34\u4E0B\u624B\uFF0C\u901A\u8FC7\u6D88\u8017\u4ED6\u4EEC\u7684\u751F\u547D\u503C\u4E0E\u6CD5\u529B\u503C\u6765\u63D0\u5347\u81EA\u8EAB\u7684\u5F97\u5206\u6548\u7387\u3002\n\n\u4E0D\u8FC7\uFF0C\u5BF9\u4E8E\u4ED6\u7684\u6545\u4E8B\u3002\u7D22\u5C3C\u5A05\uFF0C\u6211\u4EEC\u9700\u7EE7\u7EED\u6DF1\u5165\uFF0C\u5BFB\u627E\u5230\u66F4\u591A\u4EE5\u8BC1\u660E\u4ED6\u4EEC\u5B58\u5728\u8FC7\u7684\u201C\u8BB0\u5FC6\u788E\u7247\u201D\uFF0C\u624D\u53EF\u4E86\u89E3\u4ED6\u7684\u8EAB\u4E16\u5168\u8C8C......\n\n\u8BE5\u89D2\u8272\u7684\u6267\u5FF5\u6743\u91CD\uFF1A\n\u8FC7\u6FC0\u884C\u4E3A\uFF1A\u8F83\u4F4E\n\u8FF7\u832B\u6216\u51E1\u60F3\uFF1A\u7EDD\u5BF9\u56FA\u6267" + ally_heroDescription: "\u9ECE\u5999\u5999\uFF0C\u8FC7\u6FC0\u884C\u4E3A\u7C7B\u6267\u5FF5\u5076\u50CF\u3002\u5979\u7684\u6CD5\u529B\u503C\u4E0A\u9650\u76F8\u5F53\u4E4B\u9AD8\uFF0C\u53EF\u5176\u5145\u6EE1\u540E\u91CA\u653E\u7684\u6548\u679C\u76F8\u5F53\u53EF\u89C2\uFF0C\u56E0\u4E3A\u662F\u8FC7\u6FC0\u884C\u4E3A\u7C7B\u6267\u5FF5\uFF0C\u5979\u53EF\u4EE5\u5BF9\u540C\u4F34\u4E0B\u624B\uFF0C\u901A\u8FC7\u6D88\u8017\u4ED6\u4EEC\u7684\u751F\u547D\u503C\u4E0E\u6CD5\u529B\u503C\u6765\u63D0\u5347\u81EA\u8EAB\u7684\u5F97\u5206\u6548\u7387\u3002\n\n\u4E0D\u8FC7\uFF0C\u5BF9\u4E8E\u5979\u7684\u6545\u4E8B\u3002\u7D22\u5C3C\u5A05\uFF0C\u6211\u4EEC\u9700\u7EE7\u7EED\u6DF1\u5165\uFF0C\u5BFB\u627E\u5230\u66F4\u591A\u4EE5\u8BC1\u660E\u4ED6\u4EEC\u5B58\u5728\u8FC7\u7684\u201C\u8BB0\u5FC6\u788E\u7247\u201D\uFF0C\u624D\u53EF\u4E86\u89E3\u5979\u7684\u8EAB\u4E16\u5168\u8C8C......\n\n\u8BE5\u89D2\u8272\u7684\u6267\u5FF5\u6743\u91CD\uFF1A\n\u8FC7\u6FC0\u884C\u4E3A\uFF1A\u8F83\u4F4E\n\u8FF7\u832B\u6216\u51E1\u60F3\uFF1A\u7EDD\u5BF9\u56FA\u6267" levelStats: - levelName: C levelID: 1 diff --git a/Assets/Resources/so/ally/30204_lock.asset.meta b/Assets/Resources/so/ally/30204_limiaomiao.asset.meta similarity index 100% rename from Assets/Resources/so/ally/30204_lock.asset.meta rename to Assets/Resources/so/ally/30204_limiaomiao.asset.meta diff --git a/Assets/Resources/so/ally/30206_erendira.asset b/Assets/Resources/so/ally/30206_erendira.asset index a4fc3705..2f6f1cbe 100644 --- a/Assets/Resources/so/ally/30206_erendira.asset +++ b/Assets/Resources/so/ally/30206_erendira.asset @@ -258,6 +258,6 @@ MonoBehaviour: skillDescriptionsText: "\u3010\u534F\u5FC3\u5408\u4F5C\u3011\u76F8\u90BB\u5076\u50CF\u91CA\u653E\u6280\u80FD\u65F6\uFF0C\u81EA\u8EAB\u83B7\u53D6\u7B49\u540C\u4E8E\u6CD5\u529B\u503C\u4E0A\u96502%\u7684\u6CD5\u529B\u503C\uFF1B\u81EA\u8EAB\u83B7\u5F97\u201C\u4EA4\u7ED9\u4F60\uFF01\u201D\u3002\n\n\u201C\u4EA4\u7ED9\u4F60\uFF01\u201D\uFF1A\u5C06\u81EA\u8EAB\u4E0B\u4E00\u6B21\u53D7\u5230\u7684\u4F24\u5BB3\u6216\u83B7\u5F97\u7684\u589E\u76CA\u8F6C\u79FB\u7ED9\u76F8\u90BB\u5076\u50CF\u3002" thisSkill_levelLimit: 4 isSpecialSkill: 0 - equippedSkillGroupIDs: 31e8cc0138e8cc0136e8cc0137e8cc01 + equippedSkillGroupIDs: 31e8cc0138e8cc0137e8cc0136e8cc01 equippedEquipment: {fileID: 0} equippedEquipmentId: diff --git a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22201_coins_earned.asset b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22201_coins_earned.asset index 476873b2..1c9fa467 100644 --- a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22201_coins_earned.asset +++ b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22201_coins_earned.asset @@ -13,10 +13,10 @@ MonoBehaviour: m_Name: 22201_coins_earned m_EditorClassIdentifier: achievementId: 22201 - displayName: "\u7D2F\u8BA1\u83B7\u5F97100\u91D1\u5E01" + displayName: "\u7D2F\u8BA1\u83B7\u5F97100\u7B97\u529B" achievementSeriesKey: coins_earned achievementLevel: 0 - description: "\u7D2F\u8BA1\u83B7\u5F97100\u91D1\u5E01" + description: "\u7D2F\u8BA1\u83B7\u5F97100\u7B97\u529B" icon: {fileID: 0} sortOrder: 0 hiddenUntilUnlocked: 1 diff --git a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22202_coins_earned.asset b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22202_coins_earned.asset index c18fe7ca..15bfe33a 100644 --- a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22202_coins_earned.asset +++ b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22202_coins_earned.asset @@ -13,10 +13,10 @@ MonoBehaviour: m_Name: 22202_coins_earned m_EditorClassIdentifier: achievementId: 22202 - displayName: "\u7D2F\u8BA1\u83B7\u5F971000\u91D1\u5E01" + displayName: "\u7D2F\u8BA1\u83B7\u5F971000\u7B97\u529B" achievementSeriesKey: coins_earned achievementLevel: 1 - description: "\u7D2F\u8BA1\u83B7\u5F971000\u91D1\u5E01" + description: "\u7D2F\u8BA1\u83B7\u5F971000\u7B97\u529B" icon: {fileID: 0} sortOrder: 1 hiddenUntilUnlocked: 1 diff --git a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22203_coins_earned.asset b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22203_coins_earned.asset index cee327e2..a17f4a77 100644 --- a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22203_coins_earned.asset +++ b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22203_coins_earned.asset @@ -13,10 +13,10 @@ MonoBehaviour: m_Name: 22203_coins_earned m_EditorClassIdentifier: achievementId: 22203 - displayName: "\u7D2F\u8BA1\u83B7\u5F975000\u91D1\u5E01" + displayName: "\u7D2F\u8BA1\u83B7\u5F975000\u7B97\u529B" achievementSeriesKey: coins_earned achievementLevel: 2 - description: "\u7D2F\u8BA1\u83B7\u5F975000\u91D1\u5E01" + description: "\u7D2F\u8BA1\u83B7\u5F975000\u7B97\u529B" icon: {fileID: 0} sortOrder: 2 hiddenUntilUnlocked: 1 diff --git a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22204_coins_earned.asset b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22204_coins_earned.asset index df2c6b4e..b68e372d 100644 --- a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22204_coins_earned.asset +++ b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22204_coins_earned.asset @@ -13,10 +13,10 @@ MonoBehaviour: m_Name: 22204_coins_earned m_EditorClassIdentifier: achievementId: 22204 - displayName: "\u7D2F\u8BA1\u83B7\u5F9710000\u91D1\u5E01" + displayName: "\u7D2F\u8BA1\u83B7\u5F9710000\u7B97\u529B" achievementSeriesKey: coins_earned achievementLevel: 3 - description: "\u7D2F\u8BA1\u83B7\u5F9710000\u91D1\u5E01" + description: "\u7D2F\u8BA1\u83B7\u5F9710000\u7B97\u529B" icon: {fileID: 0} sortOrder: 3 hiddenUntilUnlocked: 1 diff --git a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22205_coins_earned.asset b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22205_coins_earned.asset index 5c8c682a..326e1897 100644 --- a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22205_coins_earned.asset +++ b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22205_coins_earned.asset @@ -13,10 +13,10 @@ MonoBehaviour: m_Name: 22205_coins_earned m_EditorClassIdentifier: achievementId: 22205 - displayName: "\u7D2F\u8BA1\u83B7\u5F9750000\u91D1\u5E01" + displayName: "\u7D2F\u8BA1\u83B7\u5F9750000\u7B97\u529B" achievementSeriesKey: coins_earned achievementLevel: 4 - description: "\u7D2F\u8BA1\u83B7\u5F9750000\u91D1\u5E01" + description: "\u7D2F\u8BA1\u83B7\u5F9750000\u7B97\u529B" icon: {fileID: 0} sortOrder: 4 hiddenUntilUnlocked: 1 diff --git a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22206_coins_earned.asset b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22206_coins_earned.asset index 5107d3c5..0ad303c4 100644 --- a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22206_coins_earned.asset +++ b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22206_coins_earned.asset @@ -13,10 +13,10 @@ MonoBehaviour: m_Name: 22206_coins_earned m_EditorClassIdentifier: achievementId: 22206 - displayName: "\u7D2F\u8BA1\u83B7\u5F97100000\u91D1\u5E01" + displayName: "\u7D2F\u8BA1\u83B7\u5F97100000\u7B97\u529B" achievementSeriesKey: coins_earned achievementLevel: 5 - description: "\u7D2F\u8BA1\u83B7\u5F97100000\u91D1\u5E01" + description: "\u7D2F\u8BA1\u83B7\u5F97100000\u7B97\u529B" icon: {fileID: 0} sortOrder: 5 hiddenUntilUnlocked: 1 diff --git a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22207_coins_earned.asset b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22207_coins_earned.asset index e2a75bcd..ad3cb997 100644 --- a/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22207_coins_earned.asset +++ b/Assets/Resources/so/globalAchievments/TotalCoinsEarned/22207_coins_earned.asset @@ -13,10 +13,10 @@ MonoBehaviour: m_Name: 22207_coins_earned m_EditorClassIdentifier: achievementId: 22207 - displayName: "\u7D2F\u8BA1\u83B7\u5F97500000\u91D1\u5E01" + displayName: "\u7D2F\u8BA1\u83B7\u5F97500000\u7B97\u529B" achievementSeriesKey: coins_earned achievementLevel: 6 - description: "\u7D2F\u8BA1\u83B7\u5F97500000\u91D1\u5E01" + description: "\u7D2F\u8BA1\u83B7\u5F97500000\u7B97\u529B" icon: {fileID: 0} sortOrder: 6 hiddenUntilUnlocked: 1 diff --git a/Assets/Resources/so/notebook/501content/501002.asset b/Assets/Resources/so/notebook/501content/501002.asset index 6ad1bd28..57ef9a5e 100644 --- a/Assets/Resources/so/notebook/501content/501002.asset +++ b/Assets/Resources/so/notebook/501content/501002.asset @@ -17,9 +17,10 @@ MonoBehaviour: class_id: 501002 class_name: "\u6863\u6848\u4E13\u5458\u4E0E\u52A9\u7406Sonia" class_image: {fileID: 0} + showInBag: 0 itemRarity: 3 usageTag: 0 - class_description: "\u6211\u4FDD\u6301\u7740\u6124\u6012\u4F46\u4F60\u770B\u4E0D\u51FA\u6765\n\u56E0\u4E3A\u6211\u6709\u5FAE\u7B11\u5507" + class_description: "\u6863\u6848\u4E13\u5458\u4E0E\u52A9\u7406Sonia" sonList: - son_isUnlocked: 1 son_id: 0 diff --git a/Assets/Resources/so/notebook/501content/501003.asset b/Assets/Resources/so/notebook/501content/501003.asset index a5c74a06..0e9085c1 100644 --- a/Assets/Resources/so/notebook/501content/501003.asset +++ b/Assets/Resources/so/notebook/501content/501003.asset @@ -17,9 +17,10 @@ MonoBehaviour: class_id: 501003 class_name: "Bansonic\u516C\u53F8" class_image: {fileID: 0} + showInBag: 0 itemRarity: 3 usageTag: 0 - class_description: "\u6211\u4FDD\u6301\u7740\u6124\u6012\u4F46\u4F60\u770B\u4E0D\u51FA\u6765\n\u56E0\u4E3A\u6211\u6709\u5FAE\u7B11\u5507" + class_description: "\u5173\u4E8EBansonic\u516C\u53F8.......\u8BF4\u6765\u8BDD\u957F" sonList: - son_isUnlocked: 1 son_id: 0 diff --git a/Assets/Resources/so/notebook/501content/501004.asset b/Assets/Resources/so/notebook/501content/501004.asset index b6e6f792..b0586e23 100644 --- a/Assets/Resources/so/notebook/501content/501004.asset +++ b/Assets/Resources/so/notebook/501content/501004.asset @@ -17,9 +17,10 @@ MonoBehaviour: class_id: 501003 class_name: "Filelink\u5076\u50CF\u6863\u6848\u9986" class_image: {fileID: 0} + showInBag: 0 itemRarity: 3 usageTag: 0 - class_description: "\u6211\u4FDD\u6301\u7740\u6124\u6012\u4F46\u4F60\u770B\u4E0D\u51FA\u6765\n\u56E0\u4E3A\u6211\u6709\u5FAE\u7B11\u5507" + class_description: "\u2014\u2014\u5750\u843D\u4E8E\u8FD9\u5EA7\u57CE\u5E02\u4E00\u4E2A\u76F8\u5F53\u4E0D\u8D77\u773C\u7684\u4F4D\u7F6E" sonList: - son_isUnlocked: 1 son_id: 0 diff --git a/Assets/Resources/so/storeSO/medicines/78021_dush_normal.asset b/Assets/Resources/so/storeSO/medicines/78021_dush_normal.asset index c7b5c412..0f3fe748 100644 --- a/Assets/Resources/so/storeSO/medicines/78021_dush_normal.asset +++ b/Assets/Resources/so/storeSO/medicines/78021_dush_normal.asset @@ -18,7 +18,7 @@ MonoBehaviour: itemID: 78021 itemSinglePurchaseQty: 1 itemPurchaseQuota: -1 - itemDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" + itemDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" itemDetailedDescription: "\u53EF\u5E2E\u52A9\u7ECF\u9A8C\u8FBE\u5230\u4E0A\u9650\u7684C\u7EA7\u9605\u5386\u5076\u50CF\u7A81\u7834\u5230B\u7EA7\u9605\u5386\uFF08\u7ECF\u9A8C\u503C\u4E0D\u6EE1\u65E0\u6CD5\u4F7F\u7528\uFF09\uFF0C\u6709\u52A9\u4E8E\u8BA9\u5076\u50CF\u8DC3\u8FC1\u3002\n\n\u201C\u8BF7\u672C\u4EBA\u7B7E\u5B57\u201D" itemUsageTag: 0 isOnShelf: 1 diff --git a/Assets/Resources/so/storeSO/medicines/78022_dush_medium.asset b/Assets/Resources/so/storeSO/medicines/78022_dush_medium.asset index 274cc7d0..3575cb45 100644 --- a/Assets/Resources/so/storeSO/medicines/78022_dush_medium.asset +++ b/Assets/Resources/so/storeSO/medicines/78022_dush_medium.asset @@ -18,7 +18,7 @@ MonoBehaviour: itemID: 78022 itemSinglePurchaseQty: 1 itemPurchaseQuota: -1 - itemDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" + itemDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" itemDetailedDescription: "\u4E00\u9897\u542B\u6709\u5076\u50CF\u7075\u529B\u7684\u6D0B\u8471\uFF0C\u53EF\u5E2E\u52A9\u7ECF\u9A8C\u8FBE\u5230\u4E0A\u9650\u7684B\u7EA7\u9605\u5386\u5076\u50CF\u7A81\u7834\u5230A\u7EA7\u9605\u5386\uFF08\u7ECF\u9A8C\u503C\u4E0D\u6EE1\u65E0\u6CD5\u4F7F\u7528\uFF09\uFF0C\u6709\u52A9\u4E8E\u8BA9\u5076\u50CF\u8DC3\u8FC1\u3002\n\n\u201C\u6863\u6848\u5DF2\u7ECF\u5199\u4E86\u5F97\u67091\u4E2A\u2018W\u2019\u7684\u5B57\u6570\u4E86\u201D" itemUsageTag: 0 isOnShelf: 1 diff --git a/Assets/Resources/so/storeSO/medicines/78023_dush_super.asset b/Assets/Resources/so/storeSO/medicines/78023_dush_super.asset index 5adcf864..4d7b68ef 100644 --- a/Assets/Resources/so/storeSO/medicines/78023_dush_super.asset +++ b/Assets/Resources/so/storeSO/medicines/78023_dush_super.asset @@ -18,7 +18,7 @@ MonoBehaviour: itemID: 78023 itemSinglePurchaseQty: 1 itemPurchaseQuota: -1 - itemDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + itemDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" itemDetailedDescription: "\u53EF\u5E2E\u52A9\u7ECF\u9A8C\u8FBE\u5230\u4E0A\u9650\u7684A\u7EA7\u9605\u5386\u5076\u50CF\u7A81\u7834\u5230S\u7EA7\u9605\u5386\uFF08\u7ECF\u9A8C\u503C\u4E0D\u6EE1\u65E0\u6CD5\u4F7F\u7528\uFF09\uFF0C\u6709\u52A9\u4E8E\u8BA9\u5076\u50CF\u8DC3\u8FC1\u3002\n\n\u201C\u653E\u8FDB\u6211\u7684\u6536\u85CF\u5939\u91CC\u5403\u7070\u5427\uFF01\u201D" itemUsageTag: 0 isOnShelf: 1 diff --git a/Assets/Resources/so/storeSO/medicines/78024_dush_superior.asset b/Assets/Resources/so/storeSO/medicines/78024_dush_superior.asset index 793dafb4..f38a7350 100644 --- a/Assets/Resources/so/storeSO/medicines/78024_dush_superior.asset +++ b/Assets/Resources/so/storeSO/medicines/78024_dush_superior.asset @@ -18,7 +18,7 @@ MonoBehaviour: itemID: 78024 itemSinglePurchaseQty: 1 itemPurchaseQuota: -1 - itemDescription: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + itemDescription: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" itemDetailedDescription: "\u53EF\u5E2E\u52A9\u7ECF\u9A8C\u8FBE\u5230\u4E0A\u9650\u7684C\u7EA7\u9605\u5386\u5076\u50CF\u7A81\u7834\u5230S\u7EA7\u9605\u5386\uFF08\u7ECF\u9A8C\u503C\u4E0D\u6EE1\u65E0\u6CD5\u4F7F\u7528\uFF09\uFF0C\u6709\u52A9\u4E8E\u8BA9\u5076\u50CF\u98DE\u901F\u6210\u957F\uFF0C\u4E0D\u53EF\u5408\u6210\u3002\n\n\u201C\u4E00\u591C\u4E4B\u95F4\u5199\u5B8C\u6863\u6848\u5417\uFF1F\u6709\u70B9\u610F\u601D...\u8BA9\u6211\u60F3\u8D77\u4E86\u6211\u7684\u5B66\u751F\u65F6\u671F......\u201D" itemUsageTag: 0 isOnShelf: 1 diff --git a/Assets/Resources/song_songIndex/1002006.asset b/Assets/Resources/song_songIndex/1002006.asset index c6709617..ebb3daa3 100644 --- a/Assets/Resources/song_songIndex/1002006.asset +++ b/Assets/Resources/song_songIndex/1002006.asset @@ -108,6 +108,6 @@ MonoBehaviour: current_levelProgress: 0 _if_level_is_EASE: 0 max_comboRecord: 0 - thisLevel_selectedDifficultyID: 0 + thisLevel_selectedDifficultyID: 2 thisLevel_addDateString: 2026-01-01 thisLevel_overallDescription: "\u201C\u4E3A\u4E86\u62A5\u7B54\u4F60\u521A\u521A\u544A\u8BC9\u6211\u8FD9\u4E48\u4E00\u4E2A\u5C0F\u9053\u6D88\u606F\uFF0C\u6211\u53EF\u4EE5\u6EE1\u8DB3\u4F60\u4E00\u4E2A\u613F\u671B\u54E6......\u201D\n\u4ED6\u773C\u7741\u7741\u5730\u770B\u7740\u8FD9\u4E2A\u5973\u4EBA\u5468\u56F4\u7684\u73AF\u5883\u53D8\u5F97\u9EEF\u6DE1\u8D77\u6765\uFF0C\u56E0\u4E3A\u8FD9\u662F\u5728\u573A\u5730\u5185\uFF0C\u6240\u4EE5\u8FD9\u79CD\u73B0\u8C61\u4E0D\u8DB3\u4E3A\u5947\u3002\n\u201C\u771F\u7684\uFF1F\u4EC0\u4E48\u90FD\u53EF\u4EE5\u5417\uFF1F\u201D\n\u201C\u55EF\u54FC\uFF1F\u201D\n\u201C\u628A\u4F60\u5403\u4E86\u8FD9\u987F\u996D\u7684\u996D\u94B1\u4ED8\u4E86\uFF0C\u7136\u540E\u6536\u62FE\u5B8C\u4F60\u7684\u4E1C\u897F\u8D76\u7D27\u8D70\u4EBA\uFF01\u201D" diff --git a/Assets/Scenes/Main_main.unity b/Assets/Scenes/Main_main.unity index 973ed4fa..3e8d555d 100644 --- a/Assets/Scenes/Main_main.unity +++ b/Assets/Scenes/Main_main.unity @@ -3651,6 +3651,8 @@ MonoBehaviour: globalVolume: {fileID: 387952724} fadeOutImage: {fileID: 1901335930} startButtonDelay: 2 + blockUIUISceneJump: 0 + blockUIUISceneJumpMessage: "\u670D\u52A1\u5668\u6682\u65F6\u4EC5\u9762\u5411\u5185\u6D4B\u7528\u6237\u5F00\u653E\uFF0C\u656C\u8BF7\u671F\u5F85\uFF01" --- !u!4 &746865343 Transform: m_ObjectHideFlags: 0 @@ -3766,13 +3768,13 @@ MonoBehaviour: m_BestFit: 0 m_MinSize: 1 m_MaxSize: 40 - m_Alignment: 0 + m_Alignment: 3 m_AlignByGeometry: 0 m_RichText: 1 m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: TEST_VERSION_ID_MTc3OTkwNDc1Mg==1779904752 + m_Text: WINDOWS_STEAM_publicVer_bansonic_1.0.01 --- !u!1 &777304727 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Songs_Select.unity b/Assets/Scenes/Songs_Select.unity index cead1809..e959183f 100644 --- a/Assets/Scenes/Songs_Select.unity +++ b/Assets/Scenes/Songs_Select.unity @@ -3042,7 +3042,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 272768447} - m_Enabled: 1 + m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: @@ -7723,7 +7723,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4408435802669020468, guid: e149567326267f24e857701ac5f23521, type: 3} propertyPath: m_AnchoredPosition.x - value: 125 + value: 150 objectReference: {fileID: 0} - target: {fileID: 6498247873733825824, guid: e149567326267f24e857701ac5f23521, type: 3} propertyPath: m_Name @@ -7751,7 +7751,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7437470144974653189, guid: e149567326267f24e857701ac5f23521, type: 3} propertyPath: m_AnchoredPosition.x - value: 375 + value: 350 objectReference: {fileID: 0} - target: {fileID: 8561304957759784465, guid: e149567326267f24e857701ac5f23521, type: 3} propertyPath: m_Sprite @@ -9632,8 +9632,8 @@ RectTransform: 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.0005493164, y: -0.00021362305} - m_SizeDelta: {x: 160, y: 40.877} + m_AnchoredPosition: {x: -203, y: -77.1} + m_SizeDelta: {x: 136.916, y: 34.98} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &787251157 MonoBehaviour: @@ -9692,15 +9692,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.20784314, g: 0.20784314, b: 0.20784314, a: 1} + m_Color: {r: 0.6273585, g: 0.8201215, 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: 7f3b1220317607e44bbb8f0e1998044a, type: 3} - m_Type: 1 + m_Sprite: {fileID: 21300000, guid: b2043505ccc72894cad39039862aa81f, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -15159,7 +15159,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 750978032619227304, guid: 2f8645fff0a5d034884405a8e5af53db, type: 3} propertyPath: m_AnchoredPosition.x - value: 7.279999 + value: 7.280014 objectReference: {fileID: 0} - target: {fileID: 1108773978011324000, guid: 2f8645fff0a5d034884405a8e5af53db, type: 3} propertyPath: m_Size @@ -15295,7 +15295,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3980059708193611426, guid: 2f8645fff0a5d034884405a8e5af53db, type: 3} propertyPath: m_PreferredWidth - value: 643.49994 + value: 810 objectReference: {fileID: 0} - target: {fileID: 4330958655264480670, guid: 2f8645fff0a5d034884405a8e5af53db, type: 3} propertyPath: m_AnchorMax.y diff --git a/Assets/Scenes/UI_UI.unity b/Assets/Scenes/UI_UI.unity index c701b127..dc0f1545 100644 --- a/Assets/Scenes/UI_UI.unity +++ b/Assets/Scenes/UI_UI.unity @@ -14422,8 +14422,8 @@ MonoBehaviour: tooltipPadding: {x: 16, y: 16, z: 8, w: 8} overrideSeriesStyle: 1 overrideSymbolStyle: 1 - mainSymbolSize: 8 - referenceSymbolSize: 7 + mainSymbolSize: 3 + referenceSymbolSize: 3 mainSymbolType: 2 referenceSymbolType: 2 mainStrokeColor: {r: 0.32156864, g: 0.49411765, b: 1, a: 1} @@ -19803,7 +19803,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6253\u5F00\u4E16\u754C\u804A\u5929" + m_Text: "\u201C\u4F17\u5BBE\u6B22\u4E5F\u201D" --- !u!222 &750480013 CanvasRenderer: m_ObjectHideFlags: 0 @@ -26642,7 +26642,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &925857631 RectTransform: m_ObjectHideFlags: 0 @@ -29522,7 +29522,7 @@ RectTransform: m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 71.7, y: -0.00000071526} - m_SizeDelta: {x: 30.893, y: 30.893} + m_SizeDelta: {x: 30, y: 24} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &980586653 MonoBehaviour: @@ -45487,7 +45487,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ef4bffeda13d7a748973ff9204401c07, type: 3} m_Name: m_EditorClassIdentifier: - enableSteamVerification: 1 + enableSteamVerification: 0 --- !u!4 &1558855962 Transform: m_ObjectHideFlags: 0 @@ -48180,7 +48180,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1647287118 RectTransform: m_ObjectHideFlags: 0 @@ -54791,7 +54791,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1886093564 RectTransform: m_ObjectHideFlags: 0 @@ -63447,7 +63447,7 @@ MonoBehaviour: m_SelectOnDown: {fileID: 0} m_SelectOnLeft: {fileID: 0} m_SelectOnRight: {fileID: 0} - m_Transition: 2 + 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} diff --git a/Assets/StreamingAssets/localization/en-US.json b/Assets/StreamingAssets/localization/en-US.json index d382b169..817c672d 100644 --- a/Assets/StreamingAssets/localization/en-US.json +++ b/Assets/StreamingAssets/localization/en-US.json @@ -62,7 +62,7 @@ "song.button.artist_info": "Artist: {0} | Illustrator: {1} | Charter: {2}", "song.details.play_count": "PlayCount: {0}", "press_start.idle": "Press Enter to continue.", - "store.error.insufficient_currency": "Insufficient currency", + "store.error.insufficient_currency": "算力不足", "press_start.waiting_banflag": "Waiting for banflag...", "daily.no_claimable_reward": "No claimable rewards", "press_start.warning_content": "Test phaseUnauthorized build Version: v1.0.0. Please proceed with caution.", @@ -102,7 +102,7 @@ }, "literals": { "再次点击以确认此危险操作": "Click again to confirm this dangerous action", - "货币数量已达到上限": "Currency amount has reached the upper limit", + "货币数量已达到上限": "算力数量已达到上限", "FINAL SCORE": "FINAL SCORE", "一键启动/重启动": "One-click Start / Restart", "排行榜": "Leaderboard", @@ -181,7 +181,7 @@ "TIPS:用毒蛇的毒毒毒蛇": "TIPS:用毒蛇的毒毒毒蛇", "浮动小游戏": "Floating Mini-Games", "服务器故障": "Server Error", - "“雅莉梦璃原矿”发放失败": "Failed to grant \"Yalimengli Raw Ore\"", + "“雅莉梦璃原矿”发放失败": "“记忆碎片”发放失败", "雅莉梦璃风情": "Yalimengli Vibes", "无法获取玩家信息": "Unable to retrieve player information", "今日暂无任务": "No tasks available today", @@ -211,7 +211,7 @@ "Score:": "Score:", "继续游戏": "Continue", "敬请期待!": "Coming Soon!", - "雅莉梦璃原矿": "Yalimengli Raw Ore", + "雅莉梦璃原矿": "记忆碎片", "Good": "Good", "\\u2014\\u2014\\u2014\\u2014Main Keybinding List\\u2014\\u2014\\u2014\\u2014\\n\\\"Space\\": "\\u2014\\u2014\\u2014\\u2014Main Keybinding List\\u2014\\u2014\\u2014\\u2014\\n\\\"Space\\", "官方文档 (请仔细阅读!)": "Official Documentation (Please read carefully!)", @@ -401,7 +401,7 @@ "法力上限": "Mana Limit", "升级": "Upgrade", "Miss": "Miss", - "无法发放奖励\ncode(1):操作被拦截\n“雅莉梦璃原矿”发放失败\n\n服务端已禁止发放奖励\n货币数量已达到上限": "无法发放奖励\ncode(1):操作被拦截\n“雅莉梦璃原矿”发放失败\n\n服务端已禁止发放奖励\n货币数量已达到上限", + "无法发放奖励\ncode(1):操作被拦截\n“雅莉梦璃原矿”发放失败\n\n服务端已禁止发放奖励\n货币数量已达到上限": "无法发放奖励\ncode(1):操作被拦截\n“记忆碎片”发放失败\n\n服务端已禁止发放奖励\n算力数量已达到上限", "未知装备材料": "Unknown Equipment Material", "WRITING STORIES": "WRITING STORIES", "我是专员你是专员?": "I am the specialist, and you are too?", @@ -448,7 +448,7 @@ "?????????????????": "Please wait for a future system update. Thank you!", "??????????????????????????????????????????????????????": "If none of this had happened, you would have been an ordinary idol. I will set aside the rest of the character files and begin my research with you first, Ayano.", "???? / ????": "Right Mouse Button / Cancel Selection", - "?????????": "Currency amount has reached the upper limit", + "?????????": "算力数量已达到上限", "???????????????????????????????????????????????????????????????????": "Selecting one or more idols for replay work will increase the idol score earned from this session and improve the overall rewards. We recommend assigning all available idols to the replay lineup.", "??????ID": "Still a five-character legend ID", "????banflag???????": "Loaded banflag bridge file info:", @@ -459,7 +459,7 @@ "??????? / ????????": "Left-click to equip or remove skills / Hover to view skill details", "code(1):?????": "code(1): operation intercepted", "??????????": "The server has forbidden reward distribution", - "??????\ncode(1):?????\n????????????\n\n??????????\n?????????": "Unable to grant reward\ncode(1): operation intercepted\nFailed to grant \"Yalimengli Raw Ore\"\n\nThe server has forbidden reward distribution\nCurrency amount has reached the upper limit", + "??????\ncode(1):?????\n????????????\n\n??????????\n?????????": "Unable to grant reward\ncode(1): operation intercepted\nFailed to grant \"记忆碎片\"\n\nThe server has forbidden reward distribution\n算力数量已达到上限", "??????????????\n???????????????????????????????/?????????????????????????????": "\"Gameplay Statistics\" is coming soon.\nThis panel will show key statistics such as accuracy trend lines and average early/late offset charts to help analyze mistakes and weak points during gameplay.", "???????? ????\n\ncode=-80,": "Unable to fetch idol voice-over from the server\n\ncode=-80,", "???????? ????\n\ncode=err_skin30206::00,": "Unable to fetch character outfit from the server\n\ncode=err_skin30206::00,", @@ -629,7 +629,7 @@ "最多展示100条最近记录。这些数据不会上传,仅在本地供您查看。": "最多展示100条最近记录。这些数据不会上传,仅在本地供您查看。", "查看最近100场战绩": "查看最近100场战绩", "允许设置一个自定的百分比黑幕来遮住轨道。最少遮挡20%,最多遮挡90%。每遮挡1%,提供1.5%结算奖励加成。": "允许设置一个自定的百分比黑幕来遮住轨道。最少遮挡20%,最多遮挡90%。每遮挡1%,提供1.5%结算奖励加成。", - "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大金币的1%\n(最少花费200货币)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。": "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大金币的1%\n(最少花费200货币)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。", + "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大金币的1%\n(最少花费200货币)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。": "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大算力的1%\n(最少花费200算力)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。", "信息/提示/警告/错误": "信息/提示/警告/错误", "你已获得": "你已获得", "\"调试已启用 模式debug\n——————————\ndisable": "\"调试已启用 模式debug\n——————————\ndisable", @@ -1901,26 +1901,26 @@ "你已来到本索尼克世界。赛前准备时,你可以无限制地进入新手教程。": "你已来到本索尼克世界。赛前准备时,你可以无限制地进入新手教程。", "卸下它时你已不再是新手": "卸下它时你已不再是新手", "记忆购买计划": "记忆购买计划", - "允许你以10金币购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。": "允许你以10金币购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。", + "允许你以10金币购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。": "允许你以10算力购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。", "从老师那里新学了什么?": "从老师那里新学了什么?", "记忆归还计划": "记忆归还计划", - "允许你将1个记忆碎片以4金币售出。装备此技能时可于商店解锁一个购买选项。": "允许你将1个记忆碎片以4金币售出。装备此技能时可于商店解锁一个购买选项。", + "允许你将1个记忆碎片以4金币售出。装备此技能时可于商店解锁一个购买选项。": "允许你将1个记忆碎片以4算力售出。装备此技能时可于商店解锁一个购买选项。", "老师教给你的又还回去了吗?": "老师教给你的又还回去了吗?", "挑战者模型": "挑战者模型", "高风险高回报,好奇心害死猫。": "高风险高回报,好奇心害死猫。", "赛后感悟": "赛后感悟", "每进行10场比赛可获得一件随机类型随机属性的记忆。在更换技能时清零计数器。": "每进行10场比赛可获得一件随机类型随机属性的记忆。在更换技能时清零计数器。", "我爱发明": "我爱发明", - "你的记忆融合和加速所需的货币减半。": "你的记忆融合和加速所需的货币减半。", + "你的记忆融合和加速所需的货币减半。": "你的记忆融合和加速所需的算力减半。", "追梦之路": "追梦之路", "结算时,获得偶像分数1‰的记忆碎片。": "结算时,获得偶像分数1‰的记忆碎片。", "洞察": "洞察", "你可以看到角色未解锁的技能及其介绍。": "你可以看到角色未解锁的技能及其介绍。", "你的目光极具战略前瞻性。": "你的目光极具战略前瞻性。", "95折": "95折", - "消费记忆碎片和coins时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。": "消费记忆碎片和coins时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。", + "消费记忆碎片和coins时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。": "消费记忆碎片和算力时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。", "利润提取器": "利润提取器", - "结算时,获得偶像分数2‰的金币。": "结算时,获得偶像分数2‰的金币。", + "结算时,获得偶像分数2‰的金币。": "结算时,获得偶像分数2‰的算力。", "死与税": "死与税", "顶峰相见": "顶峰相见", "游戏中你的视角高度提高10%。": "游戏中你的视角高度提高10%。", @@ -2277,14 +2277,14 @@ "拥有35首歌曲": "拥有35首歌曲", "拥有50歌曲": "拥有50歌曲", "拥有50首歌曲": "拥有50首歌曲", - "累计获得100金币": "累计获得100金币", + "累计获得100金币": "累计获得100算力", "coins_earned": "coins_earned", - "累计获得1000金币": "累计获得1000金币", - "累计获得5000金币": "累计获得5000金币", - "累计获得10000金币": "累计获得10000金币", - "累计获得50000金币": "累计获得50000金币", - "累计获得100000金币": "累计获得100000金币", - "累计获得500000金币": "累计获得500000金币", + "累计获得1000金币": "累计获得1000算力", + "累计获得5000金币": "累计获得5000算力", + "累计获得10000金币": "累计获得10000算力", + "累计获得50000金币": "累计获得50000算力", + "累计获得100000金币": "累计获得100000算力", + "累计获得500000金币": "累计获得500000算力", "总分累计2500000": "总分累计2500000", "total_song_best_sum": "total_song_best_sum", "总分之和达到250万": "总分之和达到250万", @@ -2313,7 +2313,7 @@ "啥子": "啥子", "全部歌曲": "全部歌曲", "全套歌曲": "全套歌曲", - "大量货币": "大量货币", + "大量货币": "大量算力", "雅莉梦璃币": "雅莉梦璃币", "用户经验": "用户经验", "满级用户": "满级用户", @@ -2768,16 +2768,16 @@ "稀有的超级版”共享单元“,使用后给随机4个未到达突破限制的偶像提供400经验。": "稀有的超级版”共享单元“,使用后给随机4个未到达突破限制的偶像提供400经验。", "给经验值最低的4个偶像提升400经验值(每个偶像最多获得400经验),有助于让多个偶像得到经验值。非卖品。\n\n“我觉得它还差那么一点。”": "给经验值最低的4个偶像提升400经验值(每个偶像最多获得400经验),有助于让多个偶像得到经验值。非卖品。\n\n“我觉得它还差那么一点。”", "三级归档合约": "三级归档合约", - "只有满经验的C偶像可用。足够数量的归档合约和一定金币可使其突破至B。": "只有满经验的C偶像可用。足够数量的归档合约和一定金币可使其突破至B。", + "只有满经验的C偶像可用。足够数量的归档合约和一定金币可使其突破至B。": "只有满经验的C偶像可用。足够数量的归档合约和一定算力可使其突破至B。", "可帮助经验达到上限C级阅历偶像突破到B级阅历(经验值不满无法使用),有助于让偶像跃迁。\n\n“请本人签字”": "可帮助经验达到上限C级阅历偶像突破到B级阅历(经验值不满无法使用),有助于让偶像跃迁。\n\n“请本人签字”", "二级归档合约": "二级归档合约", - "只有满经验的B偶像可用。足够数量的归档合约和一定金币可使其突破至A。": "只有满经验的B偶像可用。足够数量的归档合约和一定金币可使其突破至A。", + "只有满经验的B偶像可用。足够数量的归档合约和一定金币可使其突破至A。": "只有满经验的B偶像可用。足够数量的归档合约和一定算力可使其突破至A。", "一颗含有偶像灵力的洋葱,可帮助经验达到上限B级阅历偶像突破到A级阅历(经验值不满无法使用),有助于让偶像跃迁,可由5三级归档合约合成。\n\n“档案已经写了得有1个‘W’的字数了”": "一颗含有偶像灵力的洋葱,可帮助经验达到上限B级阅历偶像突破到A级阅历(经验值不满无法使用),有助于让偶像跃迁,可由5三级归档合约合成。\n\n“档案已经写了得有1个‘W’的字数了”", "一级归档合约": "一级归档合约", - "只有满经验的A偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "只有满经验的A偶像可用。足够数量的归档合约和一定金币可使其突破至S。", + "只有满经验的A偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "只有满经验的A偶像可用。足够数量的归档合约和一定算力可使其突破至S。", "可帮助经验达到上限A级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像跃迁,可由10二级归档合约合成。\n\n“放进我的收藏夹里吃灰吧!”": "可帮助经验达到上限A级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像跃迁,可由10二级归档合约合成。\n\n“放进我的收藏夹里吃灰吧!”", "终极归档合约": "终极归档合约", - "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定金币可使其突破至S。", + "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定算力可使其突破至S。", "可帮助经验达到上限C级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像飞速成长,不可合成。\n\n“一夜之间写完档案吗?有点意思...让我想起了我的学生时期......”": "可帮助经验达到上限C级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像飞速成长,不可合成。\n\n“一夜之间写完档案吗?有点意思...让我想起了我的学生时期......”", "美味小蛋糕": "美味小蛋糕", "一块神秘美味蛋糕。可帮助回忆美好事物。": "一块神秘美味蛋糕。可帮助回忆美好事物。", @@ -2862,7 +2862,7 @@ "阅读剧情 1 次": "阅读剧情 1 次", "使用任意经验提升或突破材料 1 次": "使用任意经验提升或突破材料 1 次", "在线 15 分钟": "在线 15 分钟", - "消费 2000 coins": "消费 2000 coins", + "消费 2000 coins": "消费 2000 算力", "游玩 3 首不同的歌曲": "游玩 3 首不同的歌曲", "Lit 2D (URP)": "Lit 2D (URP)", "Contains an orthographic camera and a Global Light 2D. Works with the 2D Renderer in Universal RP.": "Contains an orthographic camera and a Global Light 2D. Works with the 2D Renderer in Universal RP.", @@ -2905,4 +2905,4 @@ "d51371884f547f34199528b9b40d1461": "d51371884f547f34199528b9b40d1461", "Preload": "Preload" } -} \ No newline at end of file +} diff --git a/Assets/StreamingAssets/localization/zh-CN.json b/Assets/StreamingAssets/localization/zh-CN.json index 126ac73e..bb62bcaa 100644 --- a/Assets/StreamingAssets/localization/zh-CN.json +++ b/Assets/StreamingAssets/localization/zh-CN.json @@ -62,7 +62,7 @@ "press_start.banflag_found": "已找到 banflag", "song.details.play_count": "PlayCount: {0}", "press_start.idle": "按回车键继续。", - "store.error.insufficient_currency": "货币不足", + "store.error.insufficient_currency": "算力不足", "press_start.waiting_banflag": "等待 banflag...", "daily.no_claimable_reward": "暂无可领取奖励", "press_start.warning_content": "当前处于测试阶段未授权版本版本号:v1.0.0,请注意风险。", @@ -268,7 +268,7 @@ "本难度最佳总分": "本难度最佳总分", "此操作将重置存档": "此操作将重置存档", "分享": "分享", - "雅莉梦璃原矿": "雅莉梦璃原矿", + "雅莉梦璃原矿": "记忆碎片", "New Text": "New Text", "服务器繁忙": "服务器繁忙", "Press Enter to continue.": "按回车键继续。", @@ -395,7 +395,7 @@ "法力上限": "法力上限", "升级": "升级", "Miss": "Miss", - "无法发放奖励\ncode(1):操作被拦截\n“雅莉梦璃原矿”发放失败\n\n服务端已禁止发放奖励\n货币数量已达到上限": "无法发放奖励\ncode(1):操作被拦截\n“雅莉梦璃原矿”发放失败\n\n服务端已禁止发放奖励\n货币数量已达到上限", + "无法发放奖励\ncode(1):操作被拦截\n“雅莉梦璃原矿”发放失败\n\n服务端已禁止发放奖励\n货币数量已达到上限": "无法发放奖励\ncode(1):操作被拦截\n“记忆碎片”发放失败\n\n服务端已禁止发放奖励\n算力数量已达到上限", "好吧,无奈之举": "好吧,无奈之举", "Button": "Button", "我是专员你是专员?": "我是专员你是专员?", @@ -582,7 +582,7 @@ "最多展示100条最近记录。这些数据不会上传,仅在本地供您查看。": "最多展示100条最近记录。这些数据不会上传,仅在本地供您查看。", "查看最近100场战绩": "查看最近100场战绩", "允许设置一个自定的百分比黑幕来遮住轨道。最少遮挡20%,最多遮挡90%。每遮挡1%,提供1.5%结算奖励加成。": "允许设置一个自定的百分比黑幕来遮住轨道。最少遮挡20%,最多遮挡90%。每遮挡1%,提供1.5%结算奖励加成。", - "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大金币的1%\n(最少花费200货币)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。": "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大金币的1%\n(最少花费200货币)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。", + "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大金币的1%\n(最少花费200货币)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。": "“专员等级特技”\n\n玩家每到达一个等级,可解锁一个特别的专员等级技能,这些技能可作用于各种方面,您可以随意切换已解锁的技能,获得意想不到的奇效。\n\n每次切换,需要花费最大算力的1%\n(最少花费200算力)。更换一次专员技能后,须等待3场比赛冷却后方可再次切换。", "信息/提示/警告/错误": "信息/提示/警告/错误", "你已获得": "你已获得", "\"调试已启用 模式debug\n——————————\ndisable": "\"调试已启用 模式debug\n——————————\ndisable", @@ -1854,26 +1854,26 @@ "你已来到本索尼克世界。赛前准备时,你可以无限制地进入新手教程。": "你已来到本索尼克世界。赛前准备时,你可以无限制地进入新手教程。", "卸下它时你已不再是新手": "卸下它时你已不再是新手", "记忆购买计划": "记忆购买计划", - "允许你以10金币购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。": "允许你以10金币购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。", + "允许你以10金币购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。": "允许你以10算力购买1个记忆碎片。装备此技能时可于商店解锁一个购买选项。", "从老师那里新学了什么?": "从老师那里新学了什么?", "记忆归还计划": "记忆归还计划", - "允许你将1个记忆碎片以4金币售出。装备此技能时可于商店解锁一个购买选项。": "允许你将1个记忆碎片以4金币售出。装备此技能时可于商店解锁一个购买选项。", + "允许你将1个记忆碎片以4金币售出。装备此技能时可于商店解锁一个购买选项。": "允许你将1个记忆碎片以4算力售出。装备此技能时可于商店解锁一个购买选项。", "老师教给你的又还回去了吗?": "老师教给你的又还回去了吗?", "挑战者模型": "挑战者模型", "高风险高回报,好奇心害死猫。": "高风险高回报,好奇心害死猫。", "赛后感悟": "赛后感悟", "每进行10场比赛可获得一件随机类型随机属性的记忆。在更换技能时清零计数器。": "每进行10场比赛可获得一件随机类型随机属性的记忆。在更换技能时清零计数器。", "我爱发明": "我爱发明", - "你的记忆融合和加速所需的货币减半。": "你的记忆融合和加速所需的货币减半。", + "你的记忆融合和加速所需的货币减半。": "你的记忆融合和加速所需的算力减半。", "追梦之路": "追梦之路", "结算时,获得偶像分数1‰的记忆碎片。": "结算时,获得偶像分数1‰的记忆碎片。", "洞察": "洞察", "你可以看到角色未解锁的技能及其介绍。": "你可以看到角色未解锁的技能及其介绍。", "你的目光极具战略前瞻性。": "你的目光极具战略前瞻性。", "95折": "95折", - "消费记忆碎片和coins时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。": "消费记忆碎片和coins时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。", + "消费记忆碎片和coins时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。": "消费记忆碎片和算力时百分比返还。你每拥有一个偶像,增加消费返还的比例0.5%。最多合计返还5%。", "利润提取器": "利润提取器", - "结算时,获得偶像分数2‰的金币。": "结算时,获得偶像分数2‰的金币。", + "结算时,获得偶像分数2‰的金币。": "结算时,获得偶像分数2‰的算力。", "死与税": "死与税", "顶峰相见": "顶峰相见", "游戏中你的视角高度提高10%。": "游戏中你的视角高度提高10%。", @@ -2230,14 +2230,14 @@ "拥有35首歌曲": "拥有35首歌曲", "拥有50歌曲": "拥有50歌曲", "拥有50首歌曲": "拥有50首歌曲", - "累计获得100金币": "累计获得100金币", + "累计获得100金币": "累计获得100算力", "coins_earned": "coins_earned", - "累计获得1000金币": "累计获得1000金币", - "累计获得5000金币": "累计获得5000金币", - "累计获得10000金币": "累计获得10000金币", - "累计获得50000金币": "累计获得50000金币", - "累计获得100000金币": "累计获得100000金币", - "累计获得500000金币": "累计获得500000金币", + "累计获得1000金币": "累计获得1000算力", + "累计获得5000金币": "累计获得5000算力", + "累计获得10000金币": "累计获得10000算力", + "累计获得50000金币": "累计获得50000算力", + "累计获得100000金币": "累计获得100000算力", + "累计获得500000金币": "累计获得500000算力", "总分累计2500000": "总分累计2500000", "total_song_best_sum": "total_song_best_sum", "总分之和达到250万": "总分之和达到250万", @@ -2266,7 +2266,7 @@ "啥子": "啥子", "全部歌曲": "全部歌曲", "全套歌曲": "全套歌曲", - "大量货币": "大量货币", + "大量货币": "大量算力", "雅莉梦璃币": "雅莉梦璃币", "用户经验": "用户经验", "满级用户": "满级用户", @@ -2721,16 +2721,16 @@ "稀有的超级版”共享单元“,使用后给随机4个未到达突破限制的偶像提供400经验。": "稀有的超级版”共享单元“,使用后给随机4个未到达突破限制的偶像提供400经验。", "给经验值最低的4个偶像提升400经验值(每个偶像最多获得400经验),有助于让多个偶像得到经验值。非卖品。\n\n“我觉得它还差那么一点。”": "给经验值最低的4个偶像提升400经验值(每个偶像最多获得400经验),有助于让多个偶像得到经验值。非卖品。\n\n“我觉得它还差那么一点。”", "三级归档合约": "三级归档合约", - "只有满经验的C偶像可用。足够数量的归档合约和一定金币可使其突破至B。": "只有满经验的C偶像可用。足够数量的归档合约和一定金币可使其突破至B。", + "只有满经验的C偶像可用。足够数量的归档合约和一定金币可使其突破至B。": "只有满经验的C偶像可用。足够数量的归档合约和一定算力可使其突破至B。", "可帮助经验达到上限C级阅历偶像突破到B级阅历(经验值不满无法使用),有助于让偶像跃迁。\n\n“请本人签字”": "可帮助经验达到上限C级阅历偶像突破到B级阅历(经验值不满无法使用),有助于让偶像跃迁。\n\n“请本人签字”", "二级归档合约": "二级归档合约", - "只有满经验的B偶像可用。足够数量的归档合约和一定金币可使其突破至A。": "只有满经验的B偶像可用。足够数量的归档合约和一定金币可使其突破至A。", + "只有满经验的B偶像可用。足够数量的归档合约和一定金币可使其突破至A。": "只有满经验的B偶像可用。足够数量的归档合约和一定算力可使其突破至A。", "一颗含有偶像灵力的洋葱,可帮助经验达到上限B级阅历偶像突破到A级阅历(经验值不满无法使用),有助于让偶像跃迁,可由5三级归档合约合成。\n\n“档案已经写了得有1个‘W’的字数了”": "一颗含有偶像灵力的洋葱,可帮助经验达到上限B级阅历偶像突破到A级阅历(经验值不满无法使用),有助于让偶像跃迁,可由5三级归档合约合成。\n\n“档案已经写了得有1个‘W’的字数了”", "一级归档合约": "一级归档合约", - "只有满经验的A偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "只有满经验的A偶像可用。足够数量的归档合约和一定金币可使其突破至S。", + "只有满经验的A偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "只有满经验的A偶像可用。足够数量的归档合约和一定算力可使其突破至S。", "可帮助经验达到上限A级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像跃迁,可由10二级归档合约合成。\n\n“放进我的收藏夹里吃灰吧!”": "可帮助经验达到上限A级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像跃迁,可由10二级归档合约合成。\n\n“放进我的收藏夹里吃灰吧!”", "终极归档合约": "终极归档合约", - "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定金币可使其突破至S。", + "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定金币可使其突破至S。": "满经验的任意阅历资格偶像可用。足够数量的归档合约和一定算力可使其突破至S。", "可帮助经验达到上限C级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像飞速成长,不可合成。\n\n“一夜之间写完档案吗?有点意思...让我想起了我的学生时期......”": "可帮助经验达到上限C级阅历偶像突破到S级阅历(经验值不满无法使用),有助于让偶像飞速成长,不可合成。\n\n“一夜之间写完档案吗?有点意思...让我想起了我的学生时期......”", "美味小蛋糕": "美味小蛋糕", "一块神秘美味蛋糕。可帮助回忆美好事物。": "一块神秘美味蛋糕。可帮助回忆美好事物。", @@ -2815,7 +2815,7 @@ "阅读剧情 1 次": "阅读剧情 1 次", "使用任意经验提升或突破材料 1 次": "使用任意经验提升或突破材料 1 次", "在线 15 分钟": "在线 15 分钟", - "消费 2000 coins": "消费 2000 coins", + "消费 2000 coins": "消费 2000 算力", "游玩 3 首不同的歌曲": "游玩 3 首不同的歌曲", "Lit 2D (URP)": "Lit 2D (URP)", "Contains an orthographic camera and a Global Light 2D. Works with the 2D Renderer in Universal RP.": "Contains an orthographic camera and a Global Light 2D. Works with the 2D Renderer in Universal RP.", @@ -2858,4 +2858,4 @@ "d51371884f547f34199528b9b40d1461": "d51371884f547f34199528b9b40d1461", "Preload": "Preload" } -} \ No newline at end of file +} diff --git a/Assets/XCharts/Resources/XCSettings.asset b/Assets/XCharts/Resources/XCSettings.asset index 07e20fb5..060f7e0a 100644 --- a/Assets/XCharts/Resources/XCSettings.asset +++ b/Assets/XCharts/Resources/XCSettings.asset @@ -34,8 +34,8 @@ MonoBehaviour: m_DataZoomDataLineWidth: 0.5 m_VisualMapBorderWidth: 0 m_SerieLineWidth: 1.8 - m_SerieLineSymbolSize: 5 - m_SerieScatterSymbolSize: 20 + m_SerieLineSymbolSize: 2 + m_SerieScatterSymbolSize: 7 m_SerieSelectedRate: 1.3 m_SerieCandlestickBorderWidth: 1 m_EditorShowAllListData: 0 diff --git a/Assets/XCharts/Resources/XCTheme-Dark.asset b/Assets/XCharts/Resources/XCTheme-Dark.asset index 63d26000..fe793379 100644 --- a/Assets/XCharts/Resources/XCTheme-Dark.asset +++ b/Assets/XCharts/Resources/XCTheme-Dark.asset @@ -186,8 +186,8 @@ MonoBehaviour: m_TriangeLen: 20 m_Serie: m_LineWidth: 1.8 - m_LineSymbolSize: 5 - m_ScatterSymbolSize: 20 + m_LineSymbolSize: 2 + m_ScatterSymbolSize: 7 m_CandlestickColor: serializedVersion: 2 rgba: 4283846390 diff --git a/Assets/XCharts/Resources/XCTheme-Default.asset b/Assets/XCharts/Resources/XCTheme-Default.asset index 53fae3ef..decb9304 100644 --- a/Assets/XCharts/Resources/XCTheme-Default.asset +++ b/Assets/XCharts/Resources/XCTheme-Default.asset @@ -143,8 +143,8 @@ MonoBehaviour: m_TriangeLen: 20 m_Serie: m_LineWidth: 1.8 - m_LineSymbolSize: 5 - m_ScatterSymbolSize: 20 + m_LineSymbolSize: 2 + m_ScatterSymbolSize: 7 m_CandlestickColor: serializedVersion: 2 rgba: 4283716843 diff --git a/Assets/XCharts/Runtime/Internal/XCSettings.cs b/Assets/XCharts/Runtime/Internal/XCSettings.cs index 6d5f7a9e..a51a5567 100644 --- a/Assets/XCharts/Runtime/Internal/XCSettings.cs +++ b/Assets/XCharts/Runtime/Internal/XCSettings.cs @@ -47,8 +47,8 @@ namespace XCharts.Runtime [SerializeField][Range(0, 20)] private float m_VisualMapBorderWidth = 0f; [SerializeField][Range(0, 20)] private float m_SerieLineWidth = 1.8f; - [SerializeField][Range(0, 200)] private float m_SerieLineSymbolSize = 5f; - [SerializeField][Range(0, 200)] private float m_SerieScatterSymbolSize = 20f; + [SerializeField][Range(0, 200)] private float m_SerieLineSymbolSize = 2f; + [SerializeField][Range(0, 200)] private float m_SerieScatterSymbolSize = 7f; [SerializeField][Range(0, 200)] private float m_SerieSelectedRate = 1.3f; [SerializeField][Range(0, 10)] private float m_SerieCandlestickBorderWidth = 1f; @@ -200,4 +200,4 @@ namespace XCharts.Runtime return false; } } -} \ No newline at end of file +} diff --git a/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_1.png.meta b/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_1.png.meta index d17ae3b8..ccdf85b3 100644 --- a/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_1.png.meta +++ b/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_1.png.meta @@ -52,7 +52,7 @@ TextureImporter: alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteBorder: {x: 5, y: 9, z: 7, w: 5} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 @@ -139,7 +139,7 @@ TextureImporter: physicsShape: [] bones: [] spriteID: 9011aa2553d7d8c418c3a74a904410f6 - internalID: 0 + internalID: -192517948 vertices: [] indices: edges: [] diff --git a/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_2.png.meta b/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_2.png.meta index 3c69268d..5c525234 100644 --- a/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_2.png.meta +++ b/Assets/__UI_NEW/SongsSelect/ui_frame_projectdetails_2.png.meta @@ -52,7 +52,7 @@ TextureImporter: alignment: 0 spritePivot: {x: 0.5, y: 0.5} spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteBorder: {x: 5, y: 9, z: 7, w: 5} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 @@ -139,7 +139,7 @@ TextureImporter: physicsShape: [] bones: [] spriteID: 5f923e9ce00ef784bb535cf3d772d22b - internalID: 0 + internalID: 1253264213 vertices: [] indices: edges: [] diff --git a/Assets/__UI_NEW/pin.png b/Assets/__UI_NEW/pin.png new file mode 100644 index 00000000..882e6d90 Binary files /dev/null and b/Assets/__UI_NEW/pin.png differ diff --git a/Assets/__UI_NEW/pin.png.meta b/Assets/__UI_NEW/pin.png.meta new file mode 100644 index 00000000..94f39b18 --- /dev/null +++ b/Assets/__UI_NEW/pin.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: c219681c37e1b334c997f2eb1a81f405 +TextureImporter: + internalIDToNameTable: + - first: + 213: -8331064290051192931 + second: "\u6307\u948801_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: 1 + 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: 7 + 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: 256 + 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: Android + 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: "\u6307\u948801_0" + rect: + serializedVersion: 2 + x: 129 + y: 42 + width: 236 + height: 359 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: d978e860b2d126c80800000000000000 + internalID: -8331064290051192931 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + "\u6307\u948801_0": -8331064290051192931 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__UI_NEW/pin_cursor.png b/Assets/__UI_NEW/pin_cursor.png new file mode 100644 index 00000000..2c90947d Binary files /dev/null and b/Assets/__UI_NEW/pin_cursor.png differ diff --git a/Assets/__UI_NEW/pin_cursor.png.meta b/Assets/__UI_NEW/pin_cursor.png.meta new file mode 100644 index 00000000..20154cd9 --- /dev/null +++ b/Assets/__UI_NEW/pin_cursor.png.meta @@ -0,0 +1,129 @@ +fileFormatVersion: 2 +guid: 7c9b34c3b5c64e048bb0e4c7de0b0d11 +TextureImporter: + internalIDToNameTable: [] + 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: 1 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 64 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 7 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 1 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: Cursor texture for Cursor.SetCursor. Drag this Texture2D asset directly instead of a Sprite slice. + assetBundleName: + assetBundleVariant: diff --git a/Assets/__UI_NEW/spinpin.png b/Assets/__UI_NEW/spinpin.png new file mode 100644 index 00000000..c386fa6c Binary files /dev/null and b/Assets/__UI_NEW/spinpin.png differ diff --git a/Assets/__UI_NEW/spinpin.png.meta b/Assets/__UI_NEW/spinpin.png.meta new file mode 100644 index 00000000..6a7d8ed1 --- /dev/null +++ b/Assets/__UI_NEW/spinpin.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 2789dc4fff91b044a885db9f61360702 +TextureImporter: + internalIDToNameTable: + - first: + 213: -5928434924538351522 + second: "\u6307\u948801 (1)_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: 1 + 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: 2 + 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: 7 + 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: Android + 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: "\u6307\u948801 (1)_0" + rect: + serializedVersion: 2 + x: 106 + y: 0 + width: 328 + height: 492 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: e503fd8a8d7f9bda0800000000000000 + internalID: -5928434924538351522 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + "\u6307\u948801 (1)_0": -5928434924538351522 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__UI_NEW/启动房间/复用资源/设置/ui_frame_setting_.png.meta b/Assets/__UI_NEW/启动房间/复用资源/设置/ui_frame_setting_.png.meta index ad3eba19..ca464411 100644 --- a/Assets/__UI_NEW/启动房间/复用资源/设置/ui_frame_setting_.png.meta +++ b/Assets/__UI_NEW/启动房间/复用资源/设置/ui_frame_setting_.png.meta @@ -121,8 +121,8 @@ TextureImporter: width: 107 height: 109 alignment: 0 - pivot: {x: 0, y: 0} - border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + border: {x: 4, y: 8, z: 6, w: 4} customData: outline: [] physicsShape: [] @@ -138,7 +138,7 @@ TextureImporter: customData: physicsShape: [] bones: [] - spriteID: + spriteID: 03f839c2efbb4904b9bb3d90a2ef40f7 internalID: 0 vertices: [] indices: @@ -147,7 +147,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + ui_frame_setting__0: 8242753404081519931 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/__UI_NEW/启动房间/复用资源/邮箱/ui_frame_chat.png.meta b/Assets/__UI_NEW/启动房间/复用资源/邮箱/ui_frame_chat.png.meta index d958f032..4742560f 100644 --- a/Assets/__UI_NEW/启动房间/复用资源/邮箱/ui_frame_chat.png.meta +++ b/Assets/__UI_NEW/启动房间/复用资源/邮箱/ui_frame_chat.png.meta @@ -46,13 +46,13 @@ TextureImporter: nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 2 + 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} + spriteBorder: {x: 9, y: 9, z: 294, w: 8} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 @@ -121,7 +121,7 @@ TextureImporter: width: 383 height: 292 alignment: 0 - pivot: {x: 0, y: 0} + pivot: {x: 0.5, y: 0.5} border: {x: 0, y: 0, z: 0, w: 0} customData: outline: [] @@ -138,8 +138,8 @@ TextureImporter: customData: physicsShape: [] bones: [] - spriteID: - internalID: 0 + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 vertices: [] indices: edges: [] @@ -147,7 +147,8 @@ TextureImporter: secondaryTextures: [] spriteCustomMetadata: entries: [] - nameFileIdTable: {} + nameFileIdTable: + ui_frame_chat_0: 4007589676381282746 mipmapLimitGroupName: pSDRemoveMatte: 0 userData: diff --git a/Assets/__so/ally_so_res/30204/LMM01.png b/Assets/__so/ally_so_res/30204/LMM01.png new file mode 100644 index 00000000..7f7b211a Binary files /dev/null and b/Assets/__so/ally_so_res/30204/LMM01.png differ diff --git a/Assets/__so/ally_so_res/30204/LMM01.png.meta b/Assets/__so/ally_so_res/30204/LMM01.png.meta new file mode 100644 index 00000000..f96ccf40 --- /dev/null +++ b/Assets/__so/ally_so_res/30204/LMM01.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: f14b64b175b40214b9e2b4ba8be24697 +TextureImporter: + internalIDToNameTable: + - first: + 213: 1630286112366589552 + second: LMM01_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: Android + 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: LMM01_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 200 + height: 200 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 076fcd1e490ff9610800000000000000 + internalID: 1630286112366589552 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + LMM01_0: 1630286112366589552 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__so/ally_so_res/30204/LMM02.png b/Assets/__so/ally_so_res/30204/LMM02.png new file mode 100644 index 00000000..d56adb17 Binary files /dev/null and b/Assets/__so/ally_so_res/30204/LMM02.png differ diff --git a/Assets/__so/ally_so_res/30204/LMM02.png.meta b/Assets/__so/ally_so_res/30204/LMM02.png.meta new file mode 100644 index 00000000..738bf25f --- /dev/null +++ b/Assets/__so/ally_so_res/30204/LMM02.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 4aa2a31f345485c42bd2f44b2488b7f8 +TextureImporter: + internalIDToNameTable: + - first: + 213: 8574118028986653512 + second: LMM02_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: Android + 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: LMM02_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 331 + height: 91 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 84b95047be26df670800000000000000 + internalID: 8574118028986653512 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + LMM02_0: 8574118028986653512 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__so/ally_so_res/30204/LMM03.png b/Assets/__so/ally_so_res/30204/LMM03.png new file mode 100644 index 00000000..075941eb Binary files /dev/null and b/Assets/__so/ally_so_res/30204/LMM03.png differ diff --git a/Assets/__so/ally_so_res/30204/LMM03.png.meta b/Assets/__so/ally_so_res/30204/LMM03.png.meta new file mode 100644 index 00000000..e01bbb32 --- /dev/null +++ b/Assets/__so/ally_so_res/30204/LMM03.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 7df561841c29f7c4495809fa26c0fd87 +TextureImporter: + internalIDToNameTable: + - first: + 213: -5627988409318439881 + second: LMM03_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: Android + 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: LMM03_0 + rect: + serializedVersion: 2 + x: 27 + y: 0 + width: 172 + height: 96 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 7340f8e2c5e55e1b0800000000000000 + internalID: -5627988409318439881 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + LMM03_0: -5627988409318439881 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__so/ally_so_res/30204/lmm.png b/Assets/__so/ally_so_res/30204/lmm.png new file mode 100644 index 00000000..89d6b7a7 Binary files /dev/null and b/Assets/__so/ally_so_res/30204/lmm.png differ diff --git a/Assets/__so/ally_so_res/30204/lmm.png.meta b/Assets/__so/ally_so_res/30204/lmm.png.meta new file mode 100644 index 00000000..4c918002 --- /dev/null +++ b/Assets/__so/ally_so_res/30204/lmm.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 3f085a9ca0d0c8b41a02c952e6a7bf02 +TextureImporter: + internalIDToNameTable: + - first: + 213: -6045562355919041804 + second: "\u9ECE\u5999\u5999_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: Android + 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: "\u9ECE\u5999\u5999_0" + rect: + serializedVersion: 2 + x: 1006 + y: 18 + width: 988 + height: 2964 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 4fac8fb6119d91ca0800000000000000 + internalID: -6045562355919041804 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + "\u9ECE\u5999\u5999_0": -6045562355919041804 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__so/ally_so_res/30204/role_7.png b/Assets/__so/ally_so_res/30204/role_7.png new file mode 100644 index 00000000..a9556894 Binary files /dev/null and b/Assets/__so/ally_so_res/30204/role_7.png differ diff --git a/Assets/__so/ally_so_res/30204/role_7.png.meta b/Assets/__so/ally_so_res/30204/role_7.png.meta new file mode 100644 index 00000000..b00c7e4a --- /dev/null +++ b/Assets/__so/ally_so_res/30204/role_7.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 32a17cd770649ef4ba742170d95271e0 +TextureImporter: + internalIDToNameTable: + - first: + 213: 3116782900250355538 + second: role_7_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: Android + 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: role_7_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 100 + height: 136 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 2572f6bc889014b20800000000000000 + internalID: 3116782900250355538 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + role_7_0: 3116782900250355538 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__so/ally_so_res/30204/rolecards_7.png b/Assets/__so/ally_so_res/30204/rolecards_7.png new file mode 100644 index 00000000..7a9a95a5 Binary files /dev/null and b/Assets/__so/ally_so_res/30204/rolecards_7.png differ diff --git a/Assets/__so/ally_so_res/30204/rolecards_7.png.meta b/Assets/__so/ally_so_res/30204/rolecards_7.png.meta new file mode 100644 index 00000000..2fb28cd7 --- /dev/null +++ b/Assets/__so/ally_so_res/30204/rolecards_7.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 0037e2eca8c94144db3688d8d960a451 +TextureImporter: + internalIDToNameTable: + - first: + 213: 8956787028819111974 + second: rolecards_7_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: Android + 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: rolecards_7_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 166 + height: 679 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 620f69df856ec4c70800000000000000 + internalID: 8956787028819111974 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + rolecards_7_0: 8956787028819111974 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/__so/ally_so_res/30204/ui_role_idol_limiaomiao.png b/Assets/__so/ally_so_res/30204/ui_role_idol_limiaomiao.png new file mode 100644 index 00000000..9f58b65e Binary files /dev/null and b/Assets/__so/ally_so_res/30204/ui_role_idol_limiaomiao.png differ diff --git a/Assets/__so/ally_so_res/30204/ui_role_idol_limiaomiao.png.meta b/Assets/__so/ally_so_res/30204/ui_role_idol_limiaomiao.png.meta new file mode 100644 index 00000000..601166e3 --- /dev/null +++ b/Assets/__so/ally_so_res/30204/ui_role_idol_limiaomiao.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: 56b39b38b521ce242b63d86cc4bd2812 +TextureImporter: + internalIDToNameTable: + - first: + 213: 5564047283278955633 + second: ui_role_idol_limiaomiao_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: Android + 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: ui_role_idol_limiaomiao_0 + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 105 + height: 116 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 174c1594687773d40800000000000000 + internalID: 5564047283278955633 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + ui_role_idol_limiaomiao_0: 5564047283278955633 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_eqpmtSys/BansonicEquipmentGenerator.cs b/Assets/_eqpmtSys/BansonicEquipmentGenerator.cs index 98caf10b..199ade3d 100644 --- a/Assets/_eqpmtSys/BansonicEquipmentGenerator.cs +++ b/Assets/_eqpmtSys/BansonicEquipmentGenerator.cs @@ -15,8 +15,11 @@ namespace Bansonic private const string NextGeneratedIdPrefsKey = "bansonic_equipment_next_id_v1"; private const string RuntimeSaveCategory = "runtime_equipment"; private const string RuntimeSaveKey = "generated_list"; + private const string RuntimeRecoverySlotKey = "runtime_generated_equipment_list"; private static readonly List RuntimeGeneratedEquipments = new List(); private static bool runtimeGeneratedLoaded; + private static bool runtimeGeneratedLoadedFromSave; + private static bool runtimeGeneratedHasRecoverableState; private enum QualityRollMode { Default, High } @@ -113,7 +116,10 @@ namespace Bansonic { RuntimeGeneratedEquipments.Clear(); runtimeGeneratedLoaded = true; + runtimeGeneratedLoadedFromSave = false; + runtimeGeneratedHasRecoverableState = false; SecureSaveVault.Delete(RuntimeSaveCategory, RuntimeSaveKey); + LocalRecoveryMirror.DeleteSlot(RuntimeRecoverySlotKey); } public static List generateEquipment( @@ -630,12 +636,16 @@ namespace Bansonic } runtimeGeneratedLoaded = true; + runtimeGeneratedLoadedFromSave = false; + runtimeGeneratedHasRecoverableState = + SecureSaveVault.HasAnyRecoverableState(RuntimeSaveCategory, RuntimeSaveKey) + || LocalRecoveryMirror.HasSlotData(RuntimeRecoverySlotKey); RuntimeGeneratedEquipments.Clear(); RuntimeGeneratedEquipmentListPayload payload; if (!SecureSaveVault.TryLoadJson(RuntimeSaveCategory, RuntimeSaveKey, out payload) || payload == null || payload.items == null) { - if (!LocalRecoveryMirror.TryLoadJson("runtime_generated_equipment_list", out payload) || payload == null || payload.items == null) + if (!LocalRecoveryMirror.TryLoadJson(RuntimeRecoverySlotKey, out payload) || payload == null || payload.items == null) { return; } @@ -643,6 +653,7 @@ namespace Bansonic SecureSaveVault.SaveJson(RuntimeSaveCategory, RuntimeSaveKey, payload); } + runtimeGeneratedLoadedFromSave = true; for (int i = 0; i < payload.items.Count; i++) { RuntimeGeneratedEquipmentPayload itemPayload = payload.items[i]; @@ -656,6 +667,12 @@ namespace Bansonic private static void SaveRuntimeGeneratedState() { + if (!runtimeGeneratedLoadedFromSave && runtimeGeneratedHasRecoverableState) + { + Debug.LogWarning("[EquipmentGenerator] Recoverable runtime equipment state exists but could not be loaded; skip saving to avoid overwriting older equipment data."); + return; + } + RuntimeGeneratedEquipmentListPayload payload = new RuntimeGeneratedEquipmentListPayload(); for (int i = 0; i < RuntimeGeneratedEquipments.Count; i++) { @@ -669,7 +686,7 @@ namespace Bansonic } SecureSaveVault.SaveJson(RuntimeSaveCategory, RuntimeSaveKey, payload); - LocalRecoveryMirror.SaveJson("runtime_generated_equipment_list", payload); + LocalRecoveryMirror.SaveJson(RuntimeRecoverySlotKey, payload); } private static RuntimeGeneratedEquipmentPayload BuildPayload(equipmentSO equipment) diff --git a/Assets/_eqpmtSys/equipSystems/eFinalDream/eFinalDream.cs b/Assets/_eqpmtSys/equipSystems/eFinalDream/eFinalDream.cs index fc536ea9..ebbe725f 100644 --- a/Assets/_eqpmtSys/equipSystems/eFinalDream/eFinalDream.cs +++ b/Assets/_eqpmtSys/equipSystems/eFinalDream/eFinalDream.cs @@ -303,7 +303,7 @@ public class eFinalDream : MonoBehaviour if (coinRequired > 0) { - SpawnMaterialItem(coinSprite, "Coins", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired); + SpawnMaterialItem(coinSprite, "算力", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired); } if (memoryRequired > 0) @@ -400,7 +400,7 @@ public class eFinalDream : MonoBehaviour if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(coinRequired)) { - return "硬币不足"; + return "算力不足"; } if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(memoryRequired)) diff --git a/Assets/_eqpmtSys/equipSystems/eIllusion/equipIllusion.cs b/Assets/_eqpmtSys/equipSystems/eIllusion/equipIllusion.cs index 59cc54f7..e92afe03 100644 --- a/Assets/_eqpmtSys/equipSystems/eIllusion/equipIllusion.cs +++ b/Assets/_eqpmtSys/equipSystems/eIllusion/equipIllusion.cs @@ -315,7 +315,7 @@ public class equipIllusion : MonoBehaviour { SpawnMaterialItem( coinSprite, - "Coins", + "算力", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired); } @@ -416,7 +416,7 @@ public class equipIllusion : MonoBehaviour if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(coinRequired)) { - return "硬币不足"; + return "算力不足"; } if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(memoryRequired)) diff --git a/Assets/_eqpmtSys/equipSystems/eSmelt/equipSmelt.cs b/Assets/_eqpmtSys/equipSystems/eSmelt/equipSmelt.cs index f84dcb10..4718a9d6 100644 --- a/Assets/_eqpmtSys/equipSystems/eSmelt/equipSmelt.cs +++ b/Assets/_eqpmtSys/equipSystems/eSmelt/equipSmelt.cs @@ -902,7 +902,7 @@ public class equipSmelt : MonoBehaviour if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(GetStartSmeltCost())) { - reasonWhy.text = "硬币不足"; + reasonWhy.text = "算力不足"; return; } } diff --git a/Assets/_eqpmtSys/equipSystems/eTransfer/equipTransfer.cs b/Assets/_eqpmtSys/equipSystems/eTransfer/equipTransfer.cs index c23b73e6..3fb309ba 100644 --- a/Assets/_eqpmtSys/equipSystems/eTransfer/equipTransfer.cs +++ b/Assets/_eqpmtSys/equipSystems/eTransfer/equipTransfer.cs @@ -364,7 +364,7 @@ public class equipTransfer : MonoBehaviour if (coinRequired > 0) { - SpawnMaterialItem(coins, "Coins", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired); + SpawnMaterialItem(coins, "算力", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired); } if (memoryRequired > 0) @@ -446,7 +446,7 @@ public class equipTransfer : MonoBehaviour if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(coinRequired)) { - return "硬币不足"; + return "算力不足"; } if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(memoryRequired)) diff --git a/Assets/_eqpmtSys/equipSystems/eUpdate/equipUpdate.cs b/Assets/_eqpmtSys/equipSystems/eUpdate/equipUpdate.cs index ebc66085..27d0bddf 100644 --- a/Assets/_eqpmtSys/equipSystems/eUpdate/equipUpdate.cs +++ b/Assets/_eqpmtSys/equipSystems/eUpdate/equipUpdate.cs @@ -337,7 +337,7 @@ public class equipUpdate : MonoBehaviour { SpawnMaterialItem( coinSprite, - "Coins", + "算力", PlayerEconomyLedger.EnsureInstance().GetCoins(), upgradeCoinsRequired); } @@ -440,7 +440,7 @@ public class equipUpdate : MonoBehaviour if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(upgradeCoinsRequired)) { - return "硬币不足"; + return "算力不足"; } if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(upgradeMemoryRequired)) diff --git a/Assets/artworks/notebook/notebook.prefab b/Assets/artworks/notebook/notebook.prefab index c19a65bd..3cc9fc1f 100644 --- a/Assets/artworks/notebook/notebook.prefab +++ b/Assets/artworks/notebook/notebook.prefab @@ -454,7 +454,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &146991998666734905 RectTransform: m_ObjectHideFlags: 0 @@ -6625,7 +6625,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5982215219932760098, guid: 2ee69a9124e04124d9e68754504b4c8c, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5982215219932760098, guid: 2ee69a9124e04124d9e68754504b4c8c, type: 3} propertyPath: m_AnchorMin.x @@ -6633,7 +6633,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5982215219932760098, guid: 2ee69a9124e04124d9e68754504b4c8c, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5982215219932760098, guid: 2ee69a9124e04124d9e68754504b4c8c, type: 3} propertyPath: m_SizeDelta.x @@ -6673,11 +6673,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5982215219932760098, guid: 2ee69a9124e04124d9e68754504b4c8c, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 91.296265 objectReference: {fileID: 0} - target: {fileID: 5982215219932760098, guid: 2ee69a9124e04124d9e68754504b4c8c, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: 25 objectReference: {fileID: 0} - target: {fileID: 5982215219932760098, guid: 2ee69a9124e04124d9e68754504b4c8c, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/delayTapperPrefab/delayTapperPrefab.prefab b/Assets/delayTapperPrefab/delayTapperPrefab.prefab index cce7f6e0..a665bde3 100644 --- a/Assets/delayTapperPrefab/delayTapperPrefab.prefab +++ b/Assets/delayTapperPrefab/delayTapperPrefab.prefab @@ -6354,7 +6354,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u5E2E\u52A9\u4F60\u6821\u51C6\u8BBE\u5907\u5DEE\u5F02\u5F15\u8D77\u7684\u5EF6\u8FDF" + m_Text: "\u5E2E\u52A9\u4F60\u6821\u51C6\u8BBE\u5907\u5DEE\u5F02\u5F15\u8D77\u7684\u5EF6\u8FDF\uFF08\u6309\u8282\u62CD\u6572\u6253Space\uFF09" --- !u!1 &8441318564003906992 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/idolsDisplay/UI_Idols.cs b/Assets/idolsDisplay/UI_Idols.cs index ac0ec785..bbd5ebba 100644 --- a/Assets/idolsDisplay/UI_Idols.cs +++ b/Assets/idolsDisplay/UI_Idols.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using Bansonic; using DG.Tweening; using UnityEngine; using UnityEngine.UI; @@ -11,6 +12,8 @@ using UnityEditor; public class UI_Idols : MonoBehaviour { + private const string MemorySystemComingSoonMessage = "\"记忆\"系统即将上线,敬请期待!"; + [Header("quit")] public Button quitButton; @@ -265,13 +268,20 @@ public class UI_Idols : MonoBehaviour if (isOn) { + if (source == idolWeaponToggle) + { + ShowMemorySystemComingSoon(); + ApplySectionSelection(GetFirstAvailableUnlockedToggle()); + return; + } + ApplySectionSelection(source); return; } if (!AnySectionToggleOn()) { - ApplySectionSelection(idolLevelsToggle != null ? idolLevelsToggle : GetFirstAvailableToggle()); + ApplySectionSelection(GetFirstAvailableUnlockedToggle()); } else { @@ -281,7 +291,9 @@ public class UI_Idols : MonoBehaviour private void ApplySectionSelection(Toggle activeToggle) { - Toggle resolved = activeToggle != null ? activeToggle : (idolLevelsToggle != null ? idolLevelsToggle : GetFirstAvailableToggle()); + Toggle resolved = activeToggle != null && activeToggle != idolWeaponToggle + ? activeToggle + : GetFirstAvailableUnlockedToggle(); suppressToggleCallbacks = true; SetToggleState(idolLevelsToggle, resolved == idolLevelsToggle); @@ -326,6 +338,21 @@ public class UI_Idols : MonoBehaviour return null; } + private Toggle GetFirstAvailableUnlockedToggle() + { + if (idolLevelsToggle != null) return idolLevelsToggle; + if (idolVoicesToggle != null) return idolVoicesToggle; + if (idolDetailPassageToggle != null) return idolDetailPassageToggle; + if (idolSkillsToggle != null) return idolSkillsToggle; + if (idolSkinsToggle != null) return idolSkinsToggle; + return null; + } + + private static void ShowMemorySystemComingSoon() + { + gNotice.error.display(MemorySystemComingSoonMessage); + } + private static void SetToggleState(Toggle toggle, bool isOn) { if (toggle == null) diff --git a/Assets/idolsDisplay/deskillPrefab.prefab b/Assets/idolsDisplay/deskillPrefab.prefab index 433509a9..bcdeafea 100644 --- a/Assets/idolsDisplay/deskillPrefab.prefab +++ b/Assets/idolsDisplay/deskillPrefab.prefab @@ -1667,6 +1667,7 @@ GameObject: - component: {fileID: 3829753781754538968} - component: {fileID: 8946417172749083411} - component: {fileID: 4552225134849151602} + - component: {fileID: 2952962603515858014} m_Layer: 5 m_Name: description m_TagString: Untagged @@ -1690,9 +1691,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 145.415, y: -30} - m_SizeDelta: {x: 280.83, y: 54} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 140.76392, y: -3} + m_SizeDelta: {x: 271.5281, y: 54} + m_Pivot: {x: 0.5, y: 1} --- !u!222 &8946417172749083411 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1722,7 +1723,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_Font: {fileID: 12800000, guid: bc54bd51ea8b84448ba1b65311872862, type: 3} m_FontSize: 18 m_FontStyle: 0 m_BestFit: 0 @@ -1734,7 +1735,21 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6280\u80FD\u4ECB\u7ECD\n1\n" + m_Text: "\u6280\u80FD\u4ECB\u7ECD\n\u5927\u5BB6\u597D\u8FD9\u91CC\u662F\u6280\u80FD\u4ECB\u7ECD\n\u4F60\u600E\u4E48\u770B\u5230\u8FD9\u53E5\u8BDD" +--- !u!114 &2952962603515858014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5833502104821601462} + 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 &6549684703952493889 GameObject: m_ObjectHideFlags: 0 @@ -1801,7 +1816,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 diff --git a/Assets/idolsDisplay/levels/idolUpgrade.cs b/Assets/idolsDisplay/levels/idolUpgrade.cs index cc310ce6..500dcf29 100644 --- a/Assets/idolsDisplay/levels/idolUpgrade.cs +++ b/Assets/idolsDisplay/levels/idolUpgrade.cs @@ -255,7 +255,7 @@ public class idolUpgrade : MonoBehaviour prefix += "所选两项材料为一组,"; } - SetInfoText(string.Format("{0}突破需消耗 {1} 金币", prefix, GetEffectiveBreakthroughCoinCost())); + SetInfoText(string.Format("{0}突破需消耗 {1} 算力", prefix, GetEffectiveBreakthroughCoinCost())); SetConfirmInteractable(true); SetConfirmButtonText("突破"); return; @@ -997,7 +997,7 @@ public class idolUpgrade : MonoBehaviour int requiredCoins = GetEffectiveBreakthroughCoinCost(); if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(requiredCoins)) { - failureReason = "金币不足"; + failureReason = "算力不足"; return false; } @@ -1017,7 +1017,7 @@ public class idolUpgrade : MonoBehaviour if (!PlayerEconomyLedger.EnsureInstance().TrySpendCoins(requiredCoins)) { - failureReason = "金币不足"; + failureReason = "算力不足"; return false; } diff --git a/Assets/playerBagSystem/UI_userBag.prefab b/Assets/playerBagSystem/UI_userBag.prefab index a1d3123c..2cbbeb1f 100644 --- a/Assets/playerBagSystem/UI_userBag.prefab +++ b/Assets/playerBagSystem/UI_userBag.prefab @@ -57642,7 +57642,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchorMin.x @@ -57650,15 +57650,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_SizeDelta.x - value: 120 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_SizeDelta.y - value: 120 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_LocalPosition.x @@ -57690,11 +57690,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchoredPosition.x - value: 190 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchoredPosition.y - value: -65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -59696,7 +59696,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchorMin.x @@ -59704,15 +59704,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_SizeDelta.x - value: 120 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_SizeDelta.y - value: 120 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_LocalPosition.x @@ -59744,11 +59744,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchoredPosition.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_AnchoredPosition.y - value: -65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4791772059149409634, guid: 58f3bf476bf2f8a44a93e801cd45e726, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/playerBagSystem/uBag.cs b/Assets/playerBagSystem/uBag.cs index c92c12fa..d80855b1 100644 --- a/Assets/playerBagSystem/uBag.cs +++ b/Assets/playerBagSystem/uBag.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Generic; +using Bansonic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; @@ -10,6 +11,8 @@ using UnityEditor; public class uBag : MonoBehaviour { + private const string MemorySystemComingSoonMessage = "\"记忆\"系统即将上线,敬请期待!"; + private enum BagFilterMode { All, @@ -366,12 +369,17 @@ public class uBag : MonoBehaviour private void HandleEquipSystemChanged(bool isOn) { - SetObjectActive(bagObj, !isOn); - SetObjectActive(equipObj, isOn); + if (isOn) + { + ShowMemorySystemComingSoon(); + } + + ForceBagViewMode(); } private void ApplyCategory(BagCategory category) { + ForceBagViewMode(); currentCategory = category; currentFilterMode = (BagFilterMode)category; if (bag_filterDropdown != null) @@ -408,14 +416,27 @@ public class uBag : MonoBehaviour { equipSystemToggle.onValueChanged.RemoveListener(HandleEquipSystemChanged); equipSystemToggle.onValueChanged.AddListener(HandleEquipSystemChanged); - HandleEquipSystemChanged(equipSystemToggle.isOn); - return; + } + + ForceBagViewMode(); + } + + private void ForceBagViewMode() + { + if (equipSystemToggle != null) + { + equipSystemToggle.SetIsOnWithoutNotify(false); } SetObjectActive(bagObj, true); SetObjectActive(equipObj, false); } + private static void ShowMemorySystemComingSoon() + { + gNotice.error.display(MemorySystemComingSoonMessage); + } + private void HandleInventoryChanged(ExpBottleKind _, int __) { Rebuild(); @@ -674,7 +695,7 @@ public class uBag : MonoBehaviour continue; } - if (story.fatherType == notebook_faterType.notebook_fatherType.content && !story.showInBag) + if (!story.showInBag) { continue; } diff --git a/Assets/playerDisplay/UI_Player.cs b/Assets/playerDisplay/UI_Player.cs index ad63e7b6..b98af423 100644 --- a/Assets/playerDisplay/UI_Player.cs +++ b/Assets/playerDisplay/UI_Player.cs @@ -11,7 +11,6 @@ public class UI_Player : MonoBehaviour { private const string FirstLaunchDatePrefKey = "player.first_launch_date"; private const string SongResourcesPath = "song_songIndex"; - private const string VersionLabel = "\u5185\u90e8\u6d4b\u8bd5v207b35"; private const string ChannelLabel = "Steam"; private const float MaxDisplayedRksForSlider = 100f; private static readonly Color SteamOnlineColor = new Color32(20, 120, 45, 255); @@ -462,7 +461,12 @@ public class UI_Player : MonoBehaviour SpawnInfoEntry("\u603b\u6e38\u620f\u6b21\u6570", snapshot.totalGameEnterCount.ToString()); SpawnInfoEntry("\u6e38\u73a9\u603b\u65f6\u957f", FormatPlayTime(snapshot.totalPlaySeconds)); SpawnInfoEntry("\u6e20\u9053", ChannelLabel, snapshot.isSteamOnline ? SteamOnlineColor : defaultInfoColor); - SpawnInfoEntry("\u7248\u672c", VersionLabel); + SpawnInfoEntry("\u7248\u672c", GetProjectVersionLabel()); + } + + private static string GetProjectVersionLabel() + { + return string.IsNullOrWhiteSpace(Application.version) ? "-" : Application.version; } private void ClearInfoEntries() diff --git a/Assets/playerInfoDisplay/0000.png b/Assets/playerInfoDisplay/0000.png new file mode 100644 index 00000000..5f7a3916 Binary files /dev/null and b/Assets/playerInfoDisplay/0000.png differ diff --git a/Assets/playerInfoDisplay/0000.png.meta b/Assets/playerInfoDisplay/0000.png.meta new file mode 100644 index 00000000..7d3bca40 --- /dev/null +++ b/Assets/playerInfoDisplay/0000.png.meta @@ -0,0 +1,156 @@ +fileFormatVersion: 2 +guid: f3ae2a98219fbef4cb5da584e63ad366 +TextureImporter: + internalIDToNameTable: + - first: + 213: 2313463732811680064 + second: 0000_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: Android + 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: 0000_0 + rect: + serializedVersion: 2 + x: 877 + y: 145 + width: 1448 + height: 920 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 0494dfaf1031b1020800000000000000 + internalID: 2313463732811680064 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + 0000_0: 2313463732811680064 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/playerInfoDisplay/UI_Player.prefab b/Assets/playerInfoDisplay/UI_Player.prefab index 5b6aa7b5..05f0be5c 100644 --- a/Assets/playerInfoDisplay/UI_Player.prefab +++ b/Assets/playerInfoDisplay/UI_Player.prefab @@ -1,4 +1,4 @@ -%YAML 1.1 +%YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!1 &16880500079743085 GameObject: @@ -3815,6 +3815,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1078046161538248771} + - {fileID: 509130623911031789} - {fileID: 3594788202837981552} m_Father: {fileID: 5705310861349071005} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -4103,6 +4104,96 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] +--- !u!1 &2616329647580106399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 509130623911031789} + - component: {fileID: 207483723832436397} + - component: {fileID: 8572724876067965171} + - component: {fileID: 6236928908591314277} + m_Layer: 5 + m_Name: btmImg (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &509130623911031789 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2616329647580106399} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5729614146008524858} + m_Father: {fileID: 4329936282839610948} + 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: -285.5608, y: 87.1} + m_SizeDelta: {x: 2210.137, y: 1155.5757} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &207483723832436397 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2616329647580106399} + m_CullTransparentMesh: 1 +--- !u!114 &8572724876067965171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2616329647580106399} + 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.8784314} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f3ae2a98219fbef4cb5da584e63ad366, 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 &6236928908591314277 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2616329647580106399} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 --- !u!1 &2618562364703312358 GameObject: m_ObjectHideFlags: 0 @@ -6078,6 +6169,81 @@ MonoBehaviour: m_VerticalOverflow: 1 m_LineSpacing: 1 m_Text: RadarChart +--- !u!1 &3855510164280628558 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5729614146008524858} + - component: {fileID: 4173859636876891631} + - component: {fileID: 1468075156879178202} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5729614146008524858 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3855510164280628558} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 509130623911031789} + 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: 260.7, y: -150.063} + m_SizeDelta: {x: 1397.84, y: 655.2591} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4173859636876891631 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3855510164280628558} + m_CullTransparentMesh: 1 +--- !u!114 &1468075156879178202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3855510164280628558} + 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: 0 + 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 &3917494060144924217 GameObject: m_ObjectHideFlags: 0 @@ -9849,7 +10015,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 @@ -9861,7 +10027,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u65E0\u6CD5\u67E5\u8BE2\u6392\u884C\nPlayerHonorRequestForbidden\n\n\u7BA1\u7406\u5458\u6682\u505C\u4E86\u6392\u884C\u699C\u5206\u53D1" + m_Text: "\u7BA1\u7406\u5458\u6682\u505C\u4E86\u603B\u699C\u5206\u53D1\n\u656C\u8BF7\u671F\u5F85\uFF01" --- !u!1 &5969904176771562516 GameObject: m_ObjectHideFlags: 0 @@ -12607,7 +12773,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &5985393952628140132 RectTransform: m_ObjectHideFlags: 0 @@ -13203,8 +13369,8 @@ MonoBehaviour: tooltipPadding: {x: 8, y: 8, z: 4, w: 4} overrideSeriesStyle: 1 overrideSymbolStyle: 1 - mainSymbolSize: 8 - referenceSymbolSize: 7 + mainSymbolSize: 3 + referenceSymbolSize: 3 mainSymbolType: 2 referenceSymbolType: 2 mainStrokeColor: {r: 0.32156864, g: 0.49411765, b: 1, a: 1} @@ -13222,7 +13388,7 @@ MonoBehaviour: labelRootName: RadarLabels radarChartHost: {fileID: 5919567714153934601} radarChartHostName: RadarChartHost - radarChart: {fileID: 0} + radarChart: {fileID: 4822815812132583242} --- !u!222 &9130254712381567808 CanvasRenderer: m_ObjectHideFlags: 0 @@ -14261,6 +14427,7 @@ GameObject: m_Component: - component: {fileID: 5919567714153934601} - component: {fileID: 3900198720124514780} + - component: {fileID: 4822815812132583242} m_Layer: 0 m_Name: RadarChartHost m_TagString: Untagged @@ -14280,7 +14447,6 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 2821669720858302315} - {fileID: 6824719267786177413} - {fileID: 5985393952628140132} - {fileID: 4289797210827084819} @@ -14293,6 +14459,7 @@ RectTransform: - {fileID: 6077637118204166483} - {fileID: 5172637601979531406} - {fileID: 8439076572779562101} + - {fileID: 2821669720858302315} - {fileID: 5393099526794483384} - {fileID: 5713933464712640053} - {fileID: 2275204222710488928} @@ -14314,6 +14481,163 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8518915104847791415} m_CullTransparentMesh: 1 +--- !u!114 &4822815812132583242 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8518915104847791415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2231a0d3e3a5b043b074f6739be4a86, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_EnableTextMeshPro: 0 + m_ChildNodeNames: + - painter_b + - painter_0 + - painter_1 + - painter_2 + - painter_3 + - painter_4 + - painter_5 + - painter_6 + - painter_7 + - painter_8 + - painter_9 + - painter_u + - painter_t + - debug + m_ChartName: + m_UseUtc: 1 + m_Theme: + m_Show: 1 + m_SharedTheme: {fileID: 11400000, guid: e1dc23a10de1e4c5dbfbaf74c4dfd218, type: 2} + m_TransparentBackground: 0 + m_EnableCustomTheme: 0 + m_CustomFont: {fileID: 0} + m_CustomBackgroundColor: + serializedVersion: 2 + rgba: 0 + m_CustomColorPalette: [] + m_Settings: + m_Show: 1 + m_MaxPainter: 10 + m_ReversePainter: 0 + m_BasePainterMaterial: {fileID: 0} + m_SeriePainterMaterial: {fileID: 0} + m_UpperPainterMaterial: {fileID: 0} + m_TopPainterMaterial: {fileID: 0} + m_LineSmoothStyle: 2.5 + m_LineSmoothness: 2 + m_LineSegmentDistance: 3 + m_CicleSmoothness: 2 + m_LegendIconLineWidth: 2 + m_LegendIconCornerRadius: + - 0.25 + - 0.25 + - 0.25 + - 0.25 + m_AxisMaxSplitNumber: 50 + m_DebugInfo: + m_Show: 1 + m_ShowDebugInfo: 0 + m_ShowAllChartObject: 0 + m_FoldSeries: 0 + m_LabelStyle: + m_Show: 1 + m_Position: 0 + m_AutoOffset: 0 + m_Offset: {x: 0, y: 0, z: 0} + m_Rotate: 0 + m_AutoRotate: 0 + m_Distance: 0 + m_Formatter: + m_NumericFormatter: + m_Width: 0 + m_Height: 0 + m_FixedX: 0 + m_FixedY: 0 + m_Icon: + m_Show: 0 + m_Layer: 0 + m_Align: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Width: 20 + m_Height: 20 + m_Offset: {x: 0, y: 0, z: 0} + m_AutoHideWhenLabelEmpty: 0 + m_Background: + m_Show: 1 + m_Sprite: {fileID: 0} + m_Type: 0 + m_AutoColor: 0 + m_Color: {r: 0.1254902, g: 0.1254902, b: 0.1254902, a: 0.6666667} + m_Width: 0 + m_Height: 0 + m_TextPadding: + m_Show: 1 + m_Top: 0 + m_Right: 2 + m_Left: 2 + m_Bottom: 0 + m_TextStyle: + m_Show: 1 + m_Font: {fileID: 0} + m_AutoWrap: 0 + m_AutoAlign: 1 + m_Rotate: 0 + m_AutoColor: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FontSize: 18 + m_FontStyle: 0 + m_LineSpacing: 1 + m_Alignment: 4 + m_ChartInited: 0 + m_AngleAxes: [] + m_Backgrounds: [] + m_DataZooms: [] + m_Grids: [] + m_GridsLayout: [] + m_Legends: [] + m_MarkLines: [] + m_MarkAreas: [] + m_Polars: [] + m_Radars: [] + m_RadiusAxes: [] + m_Titles: [] + m_Tooltips: [] + m_VisualMaps: [] + m_XAxes: [] + m_YAxes: [] + m_SingleAxes: [] + m_Parallels: [] + m_ParallelAxes: [] + m_Comments: [] + m_SerieBars: [] + m_SerieCandlesticks: [] + m_SerieEffectScatters: [] + m_SerieHeatmaps: [] + m_SerieLines: [] + m_SeriePies: [] + m_SerieRadars: [] + m_SerieRings: [] + m_SerieScatters: [] + m_SerieParallels: [] + m_SerieSimplifiedLines: [] + m_SerieSimplifiedBars: [] + m_SerieSimplifiedCandlesticks: [] --- !u!1 &8528636467798866884 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/playerInfoDisplay/uRader/URadarChartController.cs b/Assets/playerInfoDisplay/uRader/URadarChartController.cs index 9983f7b2..6ee06571 100644 --- a/Assets/playerInfoDisplay/uRader/URadarChartController.cs +++ b/Assets/playerInfoDisplay/uRader/URadarChartController.cs @@ -67,8 +67,8 @@ public class URadarChartController : MonoBehaviour [Header("Style")] public bool overrideSeriesStyle = true; public bool overrideSymbolStyle = true; - public float mainSymbolSize = 8f; - public float referenceSymbolSize = 7f; + public float mainSymbolSize = 3f; + public float referenceSymbolSize = 3f; public SymbolType mainSymbolType = SymbolType.Circle; public SymbolType referenceSymbolType = SymbolType.Circle; public Color mainStrokeColor = new Color32(82, 126, 255, 255); @@ -422,7 +422,7 @@ public class URadarChartController : MonoBehaviour else { serie.symbol.type = SymbolType.Circle; - serie.symbol.size = isMainSerie ? 8f : 7f; + serie.symbol.size = 3f; serie.symbol.color = Color.white; } diff --git a/Assets/scripts/Combat/AllyCombatant.cs b/Assets/scripts/Combat/AllyCombatant.cs index e84227cc..d88f0ca5 100644 --- a/Assets/scripts/Combat/AllyCombatant.cs +++ b/Assets/scripts/Combat/AllyCombatant.cs @@ -1140,17 +1140,37 @@ public class AllyCombatant : MonoBehaviour, ICombatant private static AllyHero_SO.AllyLevelInfo GetEffectiveLevelForExp(AllyHero_SO so, int exp) { if (so == null || so.levelStats == null || so.levelStats.Count == 0) return null; - AllyHero_SO.AllyLevelInfo best = null; - foreach (var lvl in so.levelStats) + + List sorted = new List(); + foreach (var levelInfo in so.levelStats) { - if (lvl == null) continue; - if (exp >= lvl.requiredEXP) + if (levelInfo != null) { - if (best == null || lvl.requiredEXP >= best.requiredEXP) - best = lvl; + sorted.Add(levelInfo); } } - return best ?? so.levelStats[0]; + + if (sorted.Count == 0) return null; + sorted.Sort((left, right) => left.requiredEXP.CompareTo(right.requiredEXP)); + + int expQualifiedIndex = 0; + int safeExp = Mathf.Max(0, exp); + for (int i = 0; i < sorted.Count; i++) + { + if (safeExp >= Mathf.Max(0, sorted[i].requiredEXP)) + { + expQualifiedIndex = i; + } + else + { + break; + } + } + + int unlockedIndex = Mathf.Clamp(so.ally_growthUnlockedTierIndex, 0, sorted.Count - 1); + int effectiveIndex = Mathf.Min(expQualifiedIndex, unlockedIndex); + + return sorted[Mathf.Clamp(effectiveIndex, 0, sorted.Count - 1)]; } // Scoring API diff --git a/Assets/scripts/Data/AllyHero_SO.cs b/Assets/scripts/Data/AllyHero_SO.cs index 60c42294..3e2c3ebe 100644 --- a/Assets/scripts/Data/AllyHero_SO.cs +++ b/Assets/scripts/Data/AllyHero_SO.cs @@ -9,6 +9,9 @@ using UnityEditor; [CreateAssetMenu(fileName = "NewAllyHero", menuName = "SO_Data/AllyHero")] public class AllyHero_SO : ScriptableObject { + private const string EquippedEquipmentSaveCategory = "ally_equipped_equipment"; + private const string EquippedEquipmentRecoverySlotPrefix = "ally_equipped_equipment_"; + public static readonly string[] BehaviourAxisNames = { "题海战术", @@ -154,6 +157,13 @@ public class AllyHero_SO : ScriptableObject public equipmentSO equippedEquipment; public string equippedEquipmentId; + // 【性能】装备存档已从磁盘水合过一次的标记。水合后内存即权威来源: + // SetEquippedEquipment / ApplyEquippedEquipmentPayload / ClearEquippedEquipment 都会同步更新内存与磁盘, + // 因此无需反复解密读盘。idols 界面每次切换角色时 RebuildBag 会对"每件装备 × 每个英雄"调用 + // LoadEquippedEquipmentFromLocal 做占用检查,若每次都真正解密 SecureSaveVault 会造成严重卡顿。 + // 该标记确保每个英雄整个会话只读盘一次,之后走内存,行为完全不变。 + [System.NonSerialized] private bool equippedEquipmentHydrated; + public SkillDefinition GetPrimarySkill() { if (availableSkills == null || primarySkillIndex < 0 || primarySkillIndex >= availableSkills.Length) return null; @@ -506,12 +516,14 @@ public class AllyHero_SO : ScriptableObject { List sorted = BuildSortedLevelStats(); int unlockedIndex = ResolveUnlockedLevelIndex(sorted); - if (unlockedIndex < 0 || unlockedIndex >= sorted.Count) + int expQualifiedIndex = ResolveExpQualifiedLevelIndex(sorted); + if (unlockedIndex < 0 || expQualifiedIndex < 0 || sorted == null || sorted.Count == 0) { return null; } - return sorted[unlockedIndex]; + int effectiveIndex = Mathf.Clamp(Mathf.Min(expQualifiedIndex, unlockedIndex), 0, sorted.Count - 1); + return sorted[effectiveIndex]; } private List BuildSortedLevelStats() @@ -702,6 +714,16 @@ public class AllyHero_SO : ScriptableObject return "ally_equippedEquipment_" + ally_heroID; } + private string GetEquippedEquipmentSaveKey() + { + return ally_heroID.ToString(); + } + + private string GetEquippedEquipmentRecoverySlotKey() + { + return EquippedEquipmentRecoverySlotPrefix + ally_heroID; + } + private string GetSelectedSkinPrefsKey() { return "ally_selectedSkin_" + ally_heroID; @@ -731,13 +753,39 @@ public class AllyHero_SO : ScriptableObject equippedEquipmentId = equippedEquipment != null ? equippedEquipment.name : string.Empty; var payload = new EquippedEquipmentPayload { equippedEquipmentId = equippedEquipmentId ?? string.Empty }; string json = JsonUtility.ToJson(payload); + SecureSaveVault.SaveJson(EquippedEquipmentSaveCategory, GetEquippedEquipmentSaveKey(), payload); + LocalRecoveryMirror.SaveJson(GetEquippedEquipmentRecoverySlotKey(), payload); PlayerPrefs.SetString(GetEquippedEquipmentPrefsKey(), json); PlayerPrefs.Save(); } - public void LoadEquippedEquipmentFromLocal() + public void LoadEquippedEquipmentFromLocal(bool forceReload = false) { + // 已水合且非强制刷新时直接返回,避免重复解密读盘(见 equippedEquipmentHydrated 说明)。 + if (equippedEquipmentHydrated && !forceReload) + { + return; + } + + // 无论后续走哪条分支,本次调用都视为已完成水合: + // 命中存档→内存已填充;无存档→内存保持当前值,也不必反复重试读盘。 + equippedEquipmentHydrated = true; + string key = GetEquippedEquipmentPrefsKey(); + EquippedEquipmentPayload payload; + if (SecureSaveVault.TryLoadJson(EquippedEquipmentSaveCategory, GetEquippedEquipmentSaveKey(), out payload) && payload != null) + { + ApplyEquippedEquipmentPayload(payload); + return; + } + + if (LocalRecoveryMirror.TryLoadJson(GetEquippedEquipmentRecoverySlotKey(), out payload) && payload != null) + { + ApplyEquippedEquipmentPayload(payload); + SecureSaveVault.SaveJson(EquippedEquipmentSaveCategory, GetEquippedEquipmentSaveKey(), payload); + return; + } + if (!PlayerPrefs.HasKey(key)) { return; @@ -749,7 +797,19 @@ public class AllyHero_SO : ScriptableObject return; } - EquippedEquipmentPayload payload = JsonUtility.FromJson(json); + payload = JsonUtility.FromJson(json); + if (payload == null) + { + return; + } + + ApplyEquippedEquipmentPayload(payload); + SecureSaveVault.SaveJson(EquippedEquipmentSaveCategory, GetEquippedEquipmentSaveKey(), payload); + LocalRecoveryMirror.SaveJson(GetEquippedEquipmentRecoverySlotKey(), payload); + } + + private void ApplyEquippedEquipmentPayload(EquippedEquipmentPayload payload) + { if (payload == null) { return; @@ -763,6 +823,7 @@ public class AllyHero_SO : ScriptableObject { equippedEquipment = equipment; equippedEquipmentId = equipment != null ? equipment.name : string.Empty; + equippedEquipmentHydrated = true; #if UNITY_EDITOR if (!Application.isPlaying) @@ -801,6 +862,9 @@ public class AllyHero_SO : ScriptableObject { equippedEquipment = null; equippedEquipmentId = string.Empty; + equippedEquipmentHydrated = true; + SecureSaveVault.Delete(EquippedEquipmentSaveCategory, GetEquippedEquipmentSaveKey()); + LocalRecoveryMirror.DeleteSlot(GetEquippedEquipmentRecoverySlotKey()); PlayerPrefs.DeleteKey(GetEquippedEquipmentPrefsKey()); PlayerPrefs.Save(); #if UNITY_EDITOR diff --git a/Assets/scripts/Main_main/pressStart.cs b/Assets/scripts/Main_main/pressStart.cs index 67274570..dbcc451f 100644 --- a/Assets/scripts/Main_main/pressStart.cs +++ b/Assets/scripts/Main_main/pressStart.cs @@ -50,6 +50,10 @@ public class pressStart : MonoBehaviour public Image fadeOutImage; public float startButtonDelay = 2f; // UI starts showing after 2 seconds; allow clicking then. + [Header("UI_UI Jump Blocker")] + public bool blockUIUISceneJump = false; + public string blockUIUISceneJumpMessage = "暂不可进入。"; + // polling private Coroutine pollCoroutine; private float pollInterval = 3f; @@ -252,6 +256,16 @@ public class pressStart : MonoBehaviour // 修改为点击一次即可开始进入游戏序列 Debug.Log("[pressStart] Start requested, initiating transition sequence."); GameConfig.testMode = false; + + if (blockUIUISceneJump) + { + string message = string.IsNullOrWhiteSpace(blockUIUISceneJumpMessage) + ? "暂不可进入。" + : blockUIUISceneJumpMessage; + gNotice.error.display(message); + Debug.LogWarning("[pressStart] UI_UI scene jump blocked: " + message); + return; + } if (warningText != null) { diff --git a/Assets/scripts/Team/TeamSelectionDefaults.cs b/Assets/scripts/Team/TeamSelectionDefaults.cs new file mode 100644 index 00000000..d2d3005f --- /dev/null +++ b/Assets/scripts/Team/TeamSelectionDefaults.cs @@ -0,0 +1,51 @@ +using UnityEngine; + +public static class TeamSelectionDefaults +{ + public const int SlotCount = 5; + + private static readonly int[] DefaultHeroIds = { 30201, 30202, 30203, 30204, 30205 }; + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + private static void Bootstrap() + { + EnsureDefaultTeamIfMissing(); + } + + public static void EnsureDefaultTeamIfMissing() + { + for (int slot = 1; slot <= SlotCount; slot++) + { + if (PlayerPrefs.HasKey(GetHeroSlotKey(slot))) + { + return; + } + } + + for (int slot = 1; slot <= SlotCount; slot++) + { + PlayerPrefs.SetInt(GetHeroSlotKey(slot), GetDefaultHeroId(slot)); + } + + PlayerPrefs.SetInt("SelectedMainHeroID", DefaultHeroIds[0]); + PlayerPrefs.Save(); + } + + public static int ReadHeroId(int slot) + { + EnsureDefaultTeamIfMissing(); + return Mathf.Max(0, PlayerPrefs.GetInt(GetHeroSlotKey(slot), GetDefaultHeroId(slot))); + } + + public static int GetDefaultHeroId(int slot) + { + int index = Mathf.Clamp(slot - 1, 0, DefaultHeroIds.Length - 1); + return DefaultHeroIds[index]; + } + + private static string GetHeroSlotKey(int slot) + { + int safeSlot = Mathf.Clamp(slot, 1, SlotCount); + return $"selected_heroSlot0{safeSlot}_heroID"; + } +} diff --git a/Assets/scripts/Team/TeamSelectionDefaults.cs.meta b/Assets/scripts/Team/TeamSelectionDefaults.cs.meta new file mode 100644 index 00000000..3615461d --- /dev/null +++ b/Assets/scripts/Team/TeamSelectionDefaults.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 7dfd23d5af82d6045b465356990ca8b9 \ No newline at end of file diff --git a/Assets/scripts/Team/TeamSelectorAnimController.cs b/Assets/scripts/Team/TeamSelectorAnimController.cs index 2d5f8a81..6a49666d 100644 --- a/Assets/scripts/Team/TeamSelectorAnimController.cs +++ b/Assets/scripts/Team/TeamSelectorAnimController.cs @@ -147,21 +147,21 @@ public class TeamSelectorAnimController : MonoBehaviour void CacheTeamSnapshot() { - cachedTeam[0] = PlayerPrefs.GetInt("selected_heroSlot01_heroID", 0); - cachedTeam[1] = PlayerPrefs.GetInt("selected_heroSlot02_heroID", 0); - cachedTeam[2] = PlayerPrefs.GetInt("selected_heroSlot03_heroID", 0); - cachedTeam[3] = PlayerPrefs.GetInt("selected_heroSlot04_heroID", 0); - cachedTeam[4] = PlayerPrefs.GetInt("selected_heroSlot05_heroID", 0); + cachedTeam[0] = TeamSelectionDefaults.ReadHeroId(1); + cachedTeam[1] = TeamSelectionDefaults.ReadHeroId(2); + cachedTeam[2] = TeamSelectionDefaults.ReadHeroId(3); + cachedTeam[3] = TeamSelectionDefaults.ReadHeroId(4); + cachedTeam[4] = TeamSelectionDefaults.ReadHeroId(5); } bool HasTeamChanged() { if (teamChanged) return true; - if (cachedTeam[0] != PlayerPrefs.GetInt("selected_heroSlot01_heroID", 0)) return true; - if (cachedTeam[1] != PlayerPrefs.GetInt("selected_heroSlot02_heroID", 0)) return true; - if (cachedTeam[2] != PlayerPrefs.GetInt("selected_heroSlot03_heroID", 0)) return true; - if (cachedTeam[3] != PlayerPrefs.GetInt("selected_heroSlot04_heroID", 0)) return true; - if (cachedTeam[4] != PlayerPrefs.GetInt("selected_heroSlot05_heroID", 0)) return true; + if (cachedTeam[0] != TeamSelectionDefaults.ReadHeroId(1)) return true; + if (cachedTeam[1] != TeamSelectionDefaults.ReadHeroId(2)) return true; + if (cachedTeam[2] != TeamSelectionDefaults.ReadHeroId(3)) return true; + if (cachedTeam[3] != TeamSelectionDefaults.ReadHeroId(4)) return true; + if (cachedTeam[4] != TeamSelectionDefaults.ReadHeroId(5)) return true; return false; } diff --git a/Assets/scripts/Team/newTeamSelector.cs b/Assets/scripts/Team/newTeamSelector.cs index e1b51481..e51a616f 100644 --- a/Assets/scripts/Team/newTeamSelector.cs +++ b/Assets/scripts/Team/newTeamSelector.cs @@ -289,12 +289,13 @@ public class newTeamSelector : MonoBehaviour private int[] ReadSelectedHeroIdsFromPlayerPrefs() { + TeamSelectionDefaults.EnsureDefaultTeamIfMissing(); int[] ids = new int[Mathf.Max(5, slotCount)]; - if (ids.Length > 0) ids[0] = Mathf.Max(0, PlayerPrefs.GetInt("selected_heroSlot01_heroID", 0)); - if (ids.Length > 1) ids[1] = Mathf.Max(0, PlayerPrefs.GetInt("selected_heroSlot02_heroID", 0)); - if (ids.Length > 2) ids[2] = Mathf.Max(0, PlayerPrefs.GetInt("selected_heroSlot03_heroID", 0)); - if (ids.Length > 3) ids[3] = Mathf.Max(0, PlayerPrefs.GetInt("selected_heroSlot04_heroID", 0)); - if (ids.Length > 4) ids[4] = Mathf.Max(0, PlayerPrefs.GetInt("selected_heroSlot05_heroID", 0)); + if (ids.Length > 0) ids[0] = TeamSelectionDefaults.ReadHeroId(1); + if (ids.Length > 1) ids[1] = TeamSelectionDefaults.ReadHeroId(2); + if (ids.Length > 2) ids[2] = TeamSelectionDefaults.ReadHeroId(3); + if (ids.Length > 3) ids[3] = TeamSelectionDefaults.ReadHeroId(4); + if (ids.Length > 4) ids[4] = TeamSelectionDefaults.ReadHeroId(5); return ids; } diff --git a/Assets/scripts/UI/Panel/UI_Panel_Mail.cs b/Assets/scripts/UI/Panel/UI_Panel_Mail.cs index 270f263f..ce83391d 100644 --- a/Assets/scripts/UI/Panel/UI_Panel_Mail.cs +++ b/Assets/scripts/UI/Panel/UI_Panel_Mail.cs @@ -1679,7 +1679,7 @@ public static class MailRewardGrantService resolved = CreateBasicResolved(ResolvedKind.PlayerExp, amount, rewardName, reward.reward_image != null ? reward.reward_image : _playerExpRewardIcon, reward.reward_description, reward, "\u73a9\u5bb6\u7ecf\u9a8c"); return true; case mail_so.reward_type.money: - resolved = CreateBasicResolved(ResolvedKind.Coins, amount, rewardName, reward.reward_image != null ? reward.reward_image : _coinRewardIcon, reward.reward_description, reward, "\u91d1\u5e01"); + resolved = CreateBasicResolved(ResolvedKind.Coins, amount, rewardName, reward.reward_image != null ? reward.reward_image : _coinRewardIcon, reward.reward_description, reward, "算力"); return true; case mail_so.reward_type.metarial: resolved = CreateBasicResolved(ResolvedKind.Material, amount, rewardName, reward.reward_image != null ? reward.reward_image : _materialRewardIcon, reward.reward_description, reward, "\u8bb0\u5fc6\u788e\u7247"); diff --git a/Assets/scripts/UI/Panel/dontdestroyonload/btm and top.prefab b/Assets/scripts/UI/Panel/dontdestroyonload/btm and top.prefab index 8912c955..b4808f1e 100644 --- a/Assets/scripts/UI/Panel/dontdestroyonload/btm and top.prefab +++ b/Assets/scripts/UI/Panel/dontdestroyonload/btm and top.prefab @@ -7268,6 +7268,7 @@ GameObject: - component: {fileID: 1348388220439716234} - component: {fileID: 6137481741208887361} - component: {fileID: 1863233853179500241} + - component: {fileID: 1338150670383926109} m_Layer: 5 m_Name: Text_PLAYER m_TagString: Untagged @@ -7291,9 +7292,9 @@ RectTransform: 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: -80.7, y: -31.391098} - m_SizeDelta: {x: 273.4951, y: 26.8889} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56.047485, y: -31.391068} + m_SizeDelta: {x: 0, y: 26.8889} + m_Pivot: {x: 1, y: 0.5} --- !u!222 &6137481741208887361 CanvasRenderer: m_ObjectHideFlags: 0 @@ -7315,19 +7316,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.23921569, g: 0.21960784, b: 0.40392157, a: 1} - m_RaycastTarget: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: 2dfc162c344875b4da01e6a15073dce5, type: 3} - m_FontSize: 26 + m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3} + m_FontSize: 20 m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 2 + m_BestFit: 0 + m_MinSize: 0 m_MaxSize: 26 m_Alignment: 5 m_AlignByGeometry: 0 @@ -7335,7 +7336,21 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: USERNAME + m_Text: "USERNAME\u8FD9\u662F\u7528\u6237\u7684\u795E\u79D8\u7528\u6237\u540D\u662F12123" +--- !u!114 &1338150670383926109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5745207992015071035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 --- !u!1 &5751219486557543197 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/scripts/_runtimecache/AllyHeroDeployLedger.cs b/Assets/scripts/_runtimecache/AllyHeroDeployLedger.cs index 53f35b5b..2084a1a2 100644 --- a/Assets/scripts/_runtimecache/AllyHeroDeployLedger.cs +++ b/Assets/scripts/_runtimecache/AllyHeroDeployLedger.cs @@ -313,6 +313,12 @@ public sealed class AllyHeroDeployLedger : MonoBehaviour return; } + if (!loadedFromSave && hasAnyRecoverableLocalState) + { + Debug.LogWarning("[AllyHeroDeployLedger] Recoverable save state exists but could not be loaded; skip saving to avoid overwriting older idol growth data."); + return; + } + SyncAllMirrorFlags(); SyncAllLegacySelectedSlotExpKeys(); AllyHeroDeployLedgerStorage.TrySave(BuildPayload()); diff --git a/Assets/scripts/_runtimecache/AllyHeroDeployLedgerStorage.cs b/Assets/scripts/_runtimecache/AllyHeroDeployLedgerStorage.cs index e55c5919..3bf3db03 100644 --- a/Assets/scripts/_runtimecache/AllyHeroDeployLedgerStorage.cs +++ b/Assets/scripts/_runtimecache/AllyHeroDeployLedgerStorage.cs @@ -128,20 +128,24 @@ public static class AllyHeroDeployLedgerStorage byte[] encryptedBytes = Convert.FromBase64String(envelope.payload); AllyHeroDeployLedgerPayload loadedPayload = null; var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); - for (int i = 0; i < identifierVariants.Count; i++) + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); + for (int i = 0; i < identifierVariants.Count && loadedPayload == null; i++) { - try + for (int d = 0; d < deviceBindingVariants.Count; d++) { - byte[] plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i])); - string payloadJson = Encoding.UTF8.GetString(plainBytes); - loadedPayload = JsonUtility.FromJson(payloadJson); - if (loadedPayload != null) + try + { + byte[] plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i], deviceBindingVariants[d])); + string payloadJson = Encoding.UTF8.GetString(plainBytes); + loadedPayload = JsonUtility.FromJson(payloadJson); + if (loadedPayload != null) + { + break; + } + } + catch { - break; } - } - catch - { } } @@ -208,25 +212,19 @@ public static class AllyHeroDeployLedgerStorage private static string ComputeSignature(string payloadBase64) { - string signText = payloadBase64 + "|" + SaveIdentityUtility.GetPrimaryApplicationIdentifier() + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; - using (SHA256 sha = SHA256.Create()) - { - byte[] bytes = Encoding.UTF8.GetBytes(signText); - byte[] hash = sha.ComputeHash(bytes); - return Convert.ToBase64String(hash); - } + return ComputeSignature(payloadBase64, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } private static byte[] BuildKeyBytes() { - return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier()); + return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } - private static byte[] BuildKeyBytes(string applicationIdentifier) + private static byte[] BuildKeyBytes(string applicationIdentifier, string deviceBinding) { using (SHA256 sha = SHA256.Create()) { - string seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed; + string seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed; return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } @@ -234,21 +232,25 @@ public static class AllyHeroDeployLedgerStorage private static bool TryValidateSignature(string payloadBase64, string signature) { var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - string expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i]); - if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + for (int d = 0; d < deviceBindingVariants.Count; d++) { - return true; + string expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i], deviceBindingVariants[d]); + if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + { + return true; + } } } return false; } - private static string ComputeSignature(string payloadBase64, string applicationIdentifier) + private static string ComputeSignature(string payloadBase64, string applicationIdentifier, string deviceBinding) { - string signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; + string signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + deviceBinding; using (SHA256 sha = SHA256.Create()) { byte[] bytes = Encoding.UTF8.GetBytes(signText); diff --git a/Assets/scripts/_runtimecache/DushMaterialLedger.cs b/Assets/scripts/_runtimecache/DushMaterialLedger.cs index b236dd33..4445f7e6 100644 --- a/Assets/scripts/_runtimecache/DushMaterialLedger.cs +++ b/Assets/scripts/_runtimecache/DushMaterialLedger.cs @@ -197,6 +197,12 @@ public sealed class DushMaterialLedger : MonoBehaviour InitializeIfNeeded(); } + if (!loadedFromSave && hasAnyRecoverableLocalState) + { + Debug.LogWarning("[DushMaterialLedger] Recoverable save state exists but could not be loaded; skip saving to avoid overwriting older material data."); + return; + } + SyncMirrorCounts(); DushMaterialLedgerStorage.TrySave(BuildPayload()); SyncToPlayerData(); diff --git a/Assets/scripts/_runtimecache/DushMaterialLedgerStorage.cs b/Assets/scripts/_runtimecache/DushMaterialLedgerStorage.cs index 717f74b1..9db15a26 100644 --- a/Assets/scripts/_runtimecache/DushMaterialLedgerStorage.cs +++ b/Assets/scripts/_runtimecache/DushMaterialLedgerStorage.cs @@ -138,20 +138,24 @@ public static class DushMaterialLedgerStorage var encryptedBytes = Convert.FromBase64String(envelope.payload); DushMaterialLedgerPayload loadedPayload = null; var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); - for (int i = 0; i < identifierVariants.Count; i++) + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); + for (int i = 0; i < identifierVariants.Count && loadedPayload == null; i++) { - try + for (int d = 0; d < deviceBindingVariants.Count; d++) { - var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i])); - var payloadJson = Encoding.UTF8.GetString(plainBytes); - loadedPayload = JsonUtility.FromJson(payloadJson); - if (loadedPayload != null) + try + { + var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i], deviceBindingVariants[d])); + var payloadJson = Encoding.UTF8.GetString(plainBytes); + loadedPayload = JsonUtility.FromJson(payloadJson); + if (loadedPayload != null) + { + break; + } + } + catch { - break; } - } - catch - { } } @@ -218,25 +222,19 @@ public static class DushMaterialLedgerStorage private static string ComputeSignature(string payloadBase64) { - var signText = payloadBase64 + "|" + SaveIdentityUtility.GetPrimaryApplicationIdentifier() + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; - using (var sha = SHA256.Create()) - { - var bytes = Encoding.UTF8.GetBytes(signText); - var hash = sha.ComputeHash(bytes); - return Convert.ToBase64String(hash); - } + return ComputeSignature(payloadBase64, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } private static byte[] BuildKeyBytes() { - return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier()); + return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } - private static byte[] BuildKeyBytes(string applicationIdentifier) + private static byte[] BuildKeyBytes(string applicationIdentifier, string deviceBinding) { using (var sha = SHA256.Create()) { - var seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed; + var seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed; return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } @@ -244,21 +242,25 @@ public static class DushMaterialLedgerStorage private static bool TryValidateSignature(string payloadBase64, string signature) { var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i]); - if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + for (int d = 0; d < deviceBindingVariants.Count; d++) { - return true; + var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i], deviceBindingVariants[d]); + if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + { + return true; + } } } return false; } - private static string ComputeSignature(string payloadBase64, string applicationIdentifier) + private static string ComputeSignature(string payloadBase64, string applicationIdentifier, string deviceBinding) { - var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; + var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + deviceBinding; using (var sha = SHA256.Create()) { var bytes = Encoding.UTF8.GetBytes(signText); diff --git a/Assets/scripts/_runtimecache/EquipmentConsumableLedger.cs b/Assets/scripts/_runtimecache/EquipmentConsumableLedger.cs index 4deedc48..3383e1f0 100644 --- a/Assets/scripts/_runtimecache/EquipmentConsumableLedger.cs +++ b/Assets/scripts/_runtimecache/EquipmentConsumableLedger.cs @@ -10,6 +10,8 @@ public sealed class EquipmentConsumableLedger : MonoBehaviour private readonly Dictionary countsByKey = new Dictionary(StringComparer.Ordinal); private bool initialized; + private bool loadedFromSave; + private bool hasAnyRecoverableLocalState; [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void Bootstrap() @@ -65,11 +67,18 @@ public sealed class EquipmentConsumableLedger : MonoBehaviour } EquipmentConsumableLedgerPayload payload; - EquipmentConsumableLedgerStorage.TryLoad(out payload); + loadedFromSave = EquipmentConsumableLedgerStorage.TryLoad(out payload); + hasAnyRecoverableLocalState = loadedFromSave || EquipmentConsumableLedgerStorage.HasAnyRecoverableState(); RebuildFromPayload(payload); initialized = true; SyncMirrorCounts(); - SaveNow(); + + // If an older save exists but cannot be read right now, do not overwrite it + // with an empty default payload during startup. + if (loadedFromSave || !hasAnyRecoverableLocalState) + { + SaveNow(); + } } public int GetCount(EquipmentConsumableKind kind) @@ -126,6 +135,12 @@ public sealed class EquipmentConsumableLedger : MonoBehaviour InitializeIfNeeded(); } + if (!loadedFromSave && hasAnyRecoverableLocalState) + { + Debug.LogWarning("[EquipmentConsumableLedger] Recoverable save state exists but could not be loaded; skip saving to avoid overwriting older material data."); + return; + } + SyncMirrorCounts(); EquipmentConsumableLedgerStorage.TrySave(BuildPayload()); } diff --git a/Assets/scripts/_runtimecache/EquipmentConsumableLedgerStorage.cs b/Assets/scripts/_runtimecache/EquipmentConsumableLedgerStorage.cs index ccc5141a..6e3b9fa6 100644 --- a/Assets/scripts/_runtimecache/EquipmentConsumableLedgerStorage.cs +++ b/Assets/scripts/_runtimecache/EquipmentConsumableLedgerStorage.cs @@ -52,6 +52,7 @@ public static class EquipmentConsumableLedgerStorage { return HasAnyVaultFile(MainFileName) || HasAnyVaultFile(BackupFileName) + || PlayerProgressBackupService.HasEquipmentConsumableBackup() || LocalRecoveryMirror.HasSlotData(RecoverySlotKey); } @@ -136,20 +137,24 @@ public static class EquipmentConsumableLedgerStorage var encryptedBytes = Convert.FromBase64String(envelope.payload); EquipmentConsumableLedgerPayload loadedPayload = null; var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); - for (int i = 0; i < identifierVariants.Count; i++) + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); + for (int i = 0; i < identifierVariants.Count && loadedPayload == null; i++) { - try + for (int d = 0; d < deviceBindingVariants.Count; d++) { - var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i])); - var payloadJson = Encoding.UTF8.GetString(plainBytes); - loadedPayload = JsonUtility.FromJson(payloadJson); - if (loadedPayload != null) + try + { + var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i], deviceBindingVariants[d])); + var payloadJson = Encoding.UTF8.GetString(plainBytes); + loadedPayload = JsonUtility.FromJson(payloadJson); + if (loadedPayload != null) + { + break; + } + } + catch { - break; } - } - catch - { } } @@ -202,25 +207,19 @@ public static class EquipmentConsumableLedgerStorage private static string ComputeSignature(string payloadBase64) { - var signText = payloadBase64 + "|" + SaveIdentityUtility.GetPrimaryApplicationIdentifier() + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; - using (var sha = SHA256.Create()) - { - var bytes = Encoding.UTF8.GetBytes(signText); - var hash = sha.ComputeHash(bytes); - return Convert.ToBase64String(hash); - } + return ComputeSignature(payloadBase64, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } private static byte[] BuildKeyBytes() { - return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier()); + return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } - private static byte[] BuildKeyBytes(string applicationIdentifier) + private static byte[] BuildKeyBytes(string applicationIdentifier, string deviceBinding) { using (var sha = SHA256.Create()) { - var seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed; + var seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed; return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } @@ -228,21 +227,25 @@ public static class EquipmentConsumableLedgerStorage private static bool TryValidateSignature(string payloadBase64, string signature) { var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i]); - if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + for (int d = 0; d < deviceBindingVariants.Count; d++) { - return true; + var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i], deviceBindingVariants[d]); + if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + { + return true; + } } } return false; } - private static string ComputeSignature(string payloadBase64, string applicationIdentifier) + private static string ComputeSignature(string payloadBase64, string applicationIdentifier, string deviceBinding) { - var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; + var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + deviceBinding; using (var sha = SHA256.Create()) { var bytes = Encoding.UTF8.GetBytes(signText); diff --git a/Assets/scripts/_runtimecache/ExpBottleLedger.cs b/Assets/scripts/_runtimecache/ExpBottleLedger.cs index 34f7fca8..8bee97ca 100644 --- a/Assets/scripts/_runtimecache/ExpBottleLedger.cs +++ b/Assets/scripts/_runtimecache/ExpBottleLedger.cs @@ -295,6 +295,13 @@ public sealed class ExpBottleLedger : MonoBehaviour public void SaveNow() { InitializeIfNeededForSave(); + + if (!loadedFromSave && hasAnyRecoverableLocalState) + { + Debug.LogWarning("[ExpBottleLedger] Recoverable save state exists but could not be loaded; skip saving to avoid overwriting older material data."); + return; + } + SyncMirrorCounts(); ExpBottleLedgerStorage.TrySave(BuildPayload()); SyncToPlayerData(); diff --git a/Assets/scripts/_runtimecache/ExpBottleLedgerStorage.cs b/Assets/scripts/_runtimecache/ExpBottleLedgerStorage.cs index 4e0ccd4a..a92de483 100644 --- a/Assets/scripts/_runtimecache/ExpBottleLedgerStorage.cs +++ b/Assets/scripts/_runtimecache/ExpBottleLedgerStorage.cs @@ -138,20 +138,24 @@ public static class ExpBottleLedgerStorage var encryptedBytes = Convert.FromBase64String(envelope.payload); ExpBottleLedgerPayload loadedPayload = null; var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); - for (int i = 0; i < identifierVariants.Count; i++) + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); + for (int i = 0; i < identifierVariants.Count && loadedPayload == null; i++) { - try + for (int d = 0; d < deviceBindingVariants.Count; d++) { - var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i])); - var payloadJson = Encoding.UTF8.GetString(plainBytes); - loadedPayload = JsonUtility.FromJson(payloadJson); - if (loadedPayload != null) + try + { + var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i], deviceBindingVariants[d])); + var payloadJson = Encoding.UTF8.GetString(plainBytes); + loadedPayload = JsonUtility.FromJson(payloadJson); + if (loadedPayload != null) + { + break; + } + } + catch { - break; } - } - catch - { } } @@ -218,25 +222,19 @@ public static class ExpBottleLedgerStorage private static string ComputeSignature(string payloadBase64) { - var signText = payloadBase64 + "|" + SaveIdentityUtility.GetPrimaryApplicationIdentifier() + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; - using (var sha = SHA256.Create()) - { - var bytes = Encoding.UTF8.GetBytes(signText); - var hash = sha.ComputeHash(bytes); - return Convert.ToBase64String(hash); - } + return ComputeSignature(payloadBase64, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } private static byte[] BuildKeyBytes() { - return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier()); + return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } - private static byte[] BuildKeyBytes(string applicationIdentifier) + private static byte[] BuildKeyBytes(string applicationIdentifier, string deviceBinding) { using (var sha = SHA256.Create()) { - var seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed; + var seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed; return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } @@ -244,21 +242,25 @@ public static class ExpBottleLedgerStorage private static bool TryValidateSignature(string payloadBase64, string signature) { var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i]); - if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + for (int d = 0; d < deviceBindingVariants.Count; d++) { - return true; + var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i], deviceBindingVariants[d]); + if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + { + return true; + } } } return false; } - private static string ComputeSignature(string payloadBase64, string applicationIdentifier) + private static string ComputeSignature(string payloadBase64, string applicationIdentifier, string deviceBinding) { - var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; + var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + deviceBinding; using (var sha = SHA256.Create()) { var bytes = Encoding.UTF8.GetBytes(signText); diff --git a/Assets/scripts/_runtimecache/FirstRunFactoryResetService.cs b/Assets/scripts/_runtimecache/FirstRunFactoryResetService.cs index a8b3d2fd..9538e35e 100644 --- a/Assets/scripts/_runtimecache/FirstRunFactoryResetService.cs +++ b/Assets/scripts/_runtimecache/FirstRunFactoryResetService.cs @@ -48,11 +48,99 @@ public static class FirstRunFactoryResetService return; } + // 物理文件兜底探测(最后一道防线): + // HasAnyRecoverableLocalState() 依赖各 Storage 的解密/结构判断,若因根目录别名未覆盖、 + // 或存档结构异常而误判为"无存档",仍可能走到出厂重置。这里直接扫描磁盘上是否存在 + // 任何存档物理文件(不解密、只看存在),只要有就绝不重置,宁可等待其它恢复路径。 + if (HasAnyPhysicalSaveFileOnDisk()) + { + Debug.LogWarning("[FactoryReset] 磁盘上存在存档物理文件但未能读出," + + "为避免误删玩家数据,跳过出厂重置并补写初始化标记。"); + EnsureInitializedMarker(); + return; + } + Debug.LogWarning("[FactoryReset] 首次运行且无可恢复存档,应用出厂默认设置。"); ApplyFactoryReset(); EnsureInitializedMarker(); } + // 扫描所有可能的存档根目录(含新旧包名/公司名别名),只要磁盘上存在任意一个存档物理文件 + // 就返回 true。只判存在、不解密——因此不受 deviceUniqueIdentifier 变化影响。 + private static bool HasAnyPhysicalSaveFileOnDisk() + { + try + { + IReadOnlyList roots = SaveIdentityUtility.GetPersistentRootVariants(); + for (int i = 0; i < roots.Count; i++) + { + string root = roots[i]; + if (string.IsNullOrWhiteSpace(root)) + { + continue; + } + + // 1) 加密存档目录 .cache_bridge:递归找任意 .dat / .bak + string vaultDir = Path.Combine(root, ".cache_bridge"); + if (DirectoryHasFileWithAnyExtension(vaultDir, new[] { ".dat", ".bak" })) + { + return true; + } + + // 2) 设备无关明文备份 player_progress.bbackup + if (File.Exists(Path.Combine(root, "player_progress.bbackup"))) + { + return true; + } + + // 3) 恢复镜像目录 .save_recovery:存在任意文件即视为有存档 + string recoveryDir = Path.Combine(root, ".save_recovery"); + if (DirectoryHasAnyFile(recoveryDir)) + { + return true; + } + } + } + catch (Exception ex) + { + // 探测失败时采取保守策略:报告"存在存档",宁可跳过重置也不误删。 + Debug.LogWarning("[FactoryReset] 物理存档探测异常,保守跳过出厂重置: " + ex.Message); + return true; + } + + return false; + } + + private static bool DirectoryHasFileWithAnyExtension(string directory, string[] extensions) + { + if (string.IsNullOrWhiteSpace(directory) || !Directory.Exists(directory)) + { + return false; + } + + for (int i = 0; i < extensions.Length; i++) + { + string[] matches = Directory.GetFiles(directory, "*" + extensions[i], SearchOption.AllDirectories); + if (matches != null && matches.Length > 0) + { + return true; + } + } + + return false; + } + + private static bool DirectoryHasAnyFile(string directory) + { + if (string.IsNullOrWhiteSpace(directory) || !Directory.Exists(directory)) + { + return false; + } + + string[] matches = Directory.GetFiles(directory, "*", SearchOption.AllDirectories); + return matches != null && matches.Length > 0; + } + private static bool HasInitializedMarker() { try diff --git a/Assets/scripts/_runtimecache/PlayerEconomyLedger.cs b/Assets/scripts/_runtimecache/PlayerEconomyLedger.cs index 696c390f..f170a043 100644 --- a/Assets/scripts/_runtimecache/PlayerEconomyLedger.cs +++ b/Assets/scripts/_runtimecache/PlayerEconomyLedger.cs @@ -238,6 +238,13 @@ public sealed class PlayerEconomyLedger : MonoBehaviour public void SaveNow() { InitializeIfNeededForSave(); + + if (!loadedFromSave && hasAnyRecoverableLocalState) + { + Debug.LogWarning("[PlayerEconomyLedger] Recoverable save state exists but could not be loaded; skip saving to avoid overwriting older economy data."); + return; + } + PlayerEconomyStorage.TrySave(payload); SyncToPlayerData(); GlobalAchievementService.EnsureInstance().ReportCurrentCoins(payload.coins); diff --git a/Assets/scripts/_runtimecache/PlayerEconomyStorage.cs b/Assets/scripts/_runtimecache/PlayerEconomyStorage.cs index 322d0c66..4a46c9eb 100644 --- a/Assets/scripts/_runtimecache/PlayerEconomyStorage.cs +++ b/Assets/scripts/_runtimecache/PlayerEconomyStorage.cs @@ -138,21 +138,25 @@ public static class PlayerEconomyStorage var encryptedBytes = Convert.FromBase64String(envelope.payload); var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); PlayerEconomyPayload loadedPayload = null; - for (int i = 0; i < identifierVariants.Count; i++) + for (int i = 0; i < identifierVariants.Count && loadedPayload == null; i++) { - try + for (int d = 0; d < deviceBindingVariants.Count; d++) { - var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i])); - var payloadJson = Encoding.UTF8.GetString(plainBytes); - loadedPayload = JsonUtility.FromJson(payloadJson); - if (loadedPayload != null) + try + { + var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i], deviceBindingVariants[d])); + var payloadJson = Encoding.UTF8.GetString(plainBytes); + loadedPayload = JsonUtility.FromJson(payloadJson); + if (loadedPayload != null) + { + break; + } + } + catch { - break; } - } - catch - { } } @@ -219,25 +223,19 @@ public static class PlayerEconomyStorage private static string ComputeSignature(string payloadBase64) { - var signText = payloadBase64 + "|" + SaveIdentityUtility.GetPrimaryApplicationIdentifier() + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; - using (var sha = SHA256.Create()) - { - var bytes = Encoding.UTF8.GetBytes(signText); - var hash = sha.ComputeHash(bytes); - return Convert.ToBase64String(hash); - } + return ComputeSignature(payloadBase64, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } private static byte[] BuildKeyBytes() { - return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier()); + return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } - private static byte[] BuildKeyBytes(string applicationIdentifier) + private static byte[] BuildKeyBytes(string applicationIdentifier, string deviceBinding) { using (var sha = SHA256.Create()) { - var seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed; + var seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed; return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } @@ -245,21 +243,25 @@ public static class PlayerEconomyStorage private static bool TryValidateSignature(string payloadBase64, string signature) { var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i]); - if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + for (int d = 0; d < deviceBindingVariants.Count; d++) { - return true; + var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i], deviceBindingVariants[d]); + if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + { + return true; + } } } return false; } - private static string ComputeSignature(string payloadBase64, string applicationIdentifier) + private static string ComputeSignature(string payloadBase64, string applicationIdentifier, string deviceBinding) { - var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; + var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + deviceBinding; using (var sha = SHA256.Create()) { var bytes = Encoding.UTF8.GetBytes(signText); diff --git a/Assets/scripts/_runtimecache/PlayerExperienceLedger.cs b/Assets/scripts/_runtimecache/PlayerExperienceLedger.cs index bdc5470d..628d4c7b 100644 --- a/Assets/scripts/_runtimecache/PlayerExperienceLedger.cs +++ b/Assets/scripts/_runtimecache/PlayerExperienceLedger.cs @@ -191,6 +191,12 @@ public sealed class PlayerExperienceLedger : MonoBehaviour payload = CreateDefaultPayload(); } + if (!loadedFromSave && hasAnyRecoverableLocalState) + { + Debug.LogWarning("[PlayerExperienceLedger] Recoverable save state exists but could not be loaded; skip saving to avoid overwriting older player experience data."); + return; + } + payload.lastUpdatedUtcTicks = DateTime.UtcNow.Ticks; SecureSaveVault.SaveJson("player_experience", "runtime", payload, GetLegacySavePath()); PlayerProgressBackupService.SavePlayerExperience(payload.playerExp); diff --git a/Assets/scripts/_runtimecache/PlayerProgressBackupService.cs b/Assets/scripts/_runtimecache/PlayerProgressBackupService.cs index 31f61304..d180a12a 100644 --- a/Assets/scripts/_runtimecache/PlayerProgressBackupService.cs +++ b/Assets/scripts/_runtimecache/PlayerProgressBackupService.cs @@ -78,6 +78,12 @@ public static class PlayerProgressBackupService return TryLoadBundle(out bundle) && bundle != null && bundle.dushMaterial != null; } + public static bool HasEquipmentConsumableBackup() + { + PlayerProgressBackupBundle bundle; + return TryLoadBundle(out bundle) && bundle != null && bundle.equipmentConsumable != null; + } + public static bool HasStoreOwnershipBackup() { PlayerProgressBackupBundle bundle; diff --git a/Assets/scripts/_runtimecache/PlayerSkillService.cs b/Assets/scripts/_runtimecache/PlayerSkillService.cs index 09f1c543..17c320ea 100644 --- a/Assets/scripts/_runtimecache/PlayerSkillService.cs +++ b/Assets/scripts/_runtimecache/PlayerSkillService.cs @@ -301,7 +301,7 @@ public sealed class PlayerSkillService : MonoBehaviour if (grantedCoins > 0) { PlayerEconomyLedger.EnsureInstance().AddCoins(grantedCoins); - grantedEntries.Add(gItemGet.Create("\u91d1\u5e01", null, grantedCoins, new Color32(240, 196, 74, 255))); + grantedEntries.Add(gItemGet.Create("算力", null, grantedCoins, new Color32(240, 196, 74, 255))); } } @@ -376,7 +376,7 @@ public sealed class PlayerSkillService : MonoBehaviour int grantedCoins = purchaseAmount * 4; PlayerEconomyLedger.EnsureInstance().AddCoins(grantedCoins); - rewardEntry = gItemGet.Create("\u91d1\u5e01", item.itemIcon, grantedCoins, new Color32(240, 196, 74, 255)); + rewardEntry = gItemGet.Create("算力", item.itemIcon, grantedCoins, new Color32(240, 196, 74, 255)); return true; } diff --git a/Assets/scripts/_runtimecache/SaveIdentityUtility.cs b/Assets/scripts/_runtimecache/SaveIdentityUtility.cs index f455a3bb..a3249f1d 100644 --- a/Assets/scripts/_runtimecache/SaveIdentityUtility.cs +++ b/Assets/scripts/_runtimecache/SaveIdentityUtility.cs @@ -31,11 +31,69 @@ public static class SaveIdentityUtility "com.DefaultCompany.EaseOut_Main_FreshNew" }; + // 设备无关绑定令牌:新版存档的加密/签名统一改用它,取代 SystemInfo.deviceUniqueIdentifier。 + // 根因修复——deviceUniqueIdentifier 在安卓更新/换签名/换渠道后会变化,导致旧密钥永远解不出存档。 + // 用固定令牌后,更新或换机都不再影响解密。读取时仍会尝试真实设备 ID 变体以兼容本机旧存档。 + public const string DeviceIndependentBindingToken = "device_independent_binding_v1"; + + // 【性能】这些值在进程生命周期内恒定:SystemInfo.deviceUniqueIdentifier、Application.identifier/ + // companyName/productName 在安卓上开销较大(尤其 deviceUniqueIdentifier 涉及系统调用与哈希)。 + // 存档每次读取/验签都会取用它们,若每次重算并分配 List,会在 UI 大量刷新(如 idols 角色切换、 + // 场景切换批量重建)时造成明显卡顿。这里缓存一次,之后直接复用,行为完全不变。 + private static IReadOnlyList s_cachedApplicationIdentifierVariants; + private static IReadOnlyList s_cachedDeviceBindingVariants; + private static string s_cachedDeviceUniqueIdentifier; + private static bool s_deviceUniqueIdentifierResolved; + public static string GetPrimaryApplicationIdentifier() { return StableApplicationIdentifier; } + // 写入存档时使用的设备绑定:固定为设备无关令牌。 + public static string GetPrimaryDeviceBinding() + { + return DeviceIndependentBindingToken; + } + + // 读取/验签时尝试的设备绑定变体,按命中概率排序: + // 1) 设备无关令牌(新版写入所用,最常命中) + // 2) 当前设备真实 deviceUniqueIdentifier(兼容本机旧版写入的设备绑定存档,首次读到后会被重写为设备无关,实现无缝迁移) + // 结果缓存,避免每次读取都触发一次昂贵的 deviceUniqueIdentifier 查询与 List 分配。 + public static IReadOnlyList GetDeviceBindingVariants() + { + if (s_cachedDeviceBindingVariants != null) + { + return s_cachedDeviceBindingVariants; + } + + var result = new List(); + AddDistinct(result, DeviceIndependentBindingToken); + AddDistinct(result, SafeDeviceUniqueIdentifier()); + s_cachedDeviceBindingVariants = result; + return s_cachedDeviceBindingVariants; + } + + private static string SafeDeviceUniqueIdentifier() + { + if (s_deviceUniqueIdentifierResolved) + { + return s_cachedDeviceUniqueIdentifier; + } + + try + { + s_cachedDeviceUniqueIdentifier = SystemInfo.deviceUniqueIdentifier; + } + catch (Exception) + { + s_cachedDeviceUniqueIdentifier = null; + } + + s_deviceUniqueIdentifierResolved = true; + return s_cachedDeviceUniqueIdentifier; + } + public static string GetCanonicalPersistentRoot() { if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer) @@ -50,6 +108,11 @@ public static class SaveIdentityUtility public static IReadOnlyList GetApplicationIdentifierVariants() { + if (s_cachedApplicationIdentifierVariants != null) + { + return s_cachedApplicationIdentifierVariants; + } + var result = new List(); AddDistinct(result, StableApplicationIdentifier); AddDistinct(result, Application.identifier); @@ -74,7 +137,8 @@ public static class SaveIdentityUtility } } - return result; + s_cachedApplicationIdentifierVariants = result; + return s_cachedApplicationIdentifierVariants; } public static IReadOnlyList GetPersistentRootVariants(string extraLegacyPath = null) diff --git a/Assets/scripts/_runtimecache/SecureSaveVault.cs b/Assets/scripts/_runtimecache/SecureSaveVault.cs index 6385e852..8fa8b0ac 100644 --- a/Assets/scripts/_runtimecache/SecureSaveVault.cs +++ b/Assets/scripts/_runtimecache/SecureSaveVault.cs @@ -373,12 +373,7 @@ public static class SecureSaveVault private static string ComputeSignature(string category, string payloadBase64) { - string signText = payloadBase64 + "|" + category + "|" + SaveIdentityUtility.GetPrimaryApplicationIdentifier() + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; - using (var sha = SHA256.Create()) - { - byte[] hash = sha.ComputeHash(Encoding.UTF8.GetBytes(signText)); - return Convert.ToBase64String(hash); - } + return ComputeSignature(category, payloadBase64, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } private static byte[] ProtectBytes(string category, string key, byte[] plainBytes) @@ -394,7 +389,7 @@ public static class SecureSaveVault { aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; - aes.Key = BuildAesKey(category, key, SaveIdentityUtility.GetPrimaryApplicationIdentifier()); + aes.Key = BuildAesKey(category, key, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); aes.GenerateIV(); using (var encryptor = aes.CreateEncryptor()) { @@ -419,37 +414,41 @@ public static class SecureSaveVault } #endif IReadOnlyList identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + IReadOnlyList deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - using (var aes = Aes.Create()) + for (int dv = 0; dv < deviceBindingVariants.Count; dv++) { - aes.Mode = CipherMode.CBC; - aes.Padding = PaddingMode.PKCS7; - aes.Key = BuildAesKey(category, key, identifierVariants[i]); - int ivLength = aes.BlockSize / 8; - if (protectedBytes == null || protectedBytes.Length <= ivLength) + using (var aes = Aes.Create()) { - return false; - } - - byte[] iv = new byte[ivLength]; - byte[] cipher = new byte[protectedBytes.Length - ivLength]; - Buffer.BlockCopy(protectedBytes, 0, iv, 0, ivLength); - Buffer.BlockCopy(protectedBytes, ivLength, cipher, 0, cipher.Length); - aes.IV = iv; - try - { - using (var decryptor = aes.CreateDecryptor()) + aes.Mode = CipherMode.CBC; + aes.Padding = PaddingMode.PKCS7; + aes.Key = BuildAesKey(category, key, identifierVariants[i], deviceBindingVariants[dv]); + int ivLength = aes.BlockSize / 8; + if (protectedBytes == null || protectedBytes.Length <= ivLength) { - plainBytes = decryptor.TransformFinalBlock(cipher, 0, cipher.Length); - if (plainBytes != null) + return false; + } + + byte[] iv = new byte[ivLength]; + byte[] cipher = new byte[protectedBytes.Length - ivLength]; + Buffer.BlockCopy(protectedBytes, 0, iv, 0, ivLength); + Buffer.BlockCopy(protectedBytes, ivLength, cipher, 0, cipher.Length); + aes.IV = iv; + try + { + using (var decryptor = aes.CreateDecryptor()) { - return true; + plainBytes = decryptor.TransformFinalBlock(cipher, 0, cipher.Length); + if (plainBytes != null) + { + return true; + } } } - } - catch - { + catch + { + } } } } @@ -476,7 +475,7 @@ public static class SecureSaveVault try { - protectedBytes = s_dpapiProtectMethod.Invoke(null, new object[] { plainBytes, BuildEntropy(category, SaveIdentityUtility.GetPrimaryApplicationIdentifier()), s_dpapiCurrentUserScope }) as byte[]; + protectedBytes = s_dpapiProtectMethod.Invoke(null, new object[] { plainBytes, BuildEntropy(category, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()), s_dpapiCurrentUserScope }) as byte[]; return protectedBytes != null && protectedBytes.Length > 0; } catch (Exception ex) @@ -496,18 +495,22 @@ public static class SecureSaveVault } IReadOnlyList identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + IReadOnlyList deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - try + for (int d = 0; d < deviceBindingVariants.Count; d++) { - plainBytes = s_dpapiUnprotectMethod.Invoke(null, new object[] { protectedBytes, BuildEntropy(category, identifierVariants[i]), s_dpapiCurrentUserScope }) as byte[]; - if (plainBytes != null && plainBytes.Length > 0) + try + { + plainBytes = s_dpapiUnprotectMethod.Invoke(null, new object[] { protectedBytes, BuildEntropy(category, identifierVariants[i], deviceBindingVariants[d]), s_dpapiCurrentUserScope }) as byte[]; + if (plainBytes != null && plainBytes.Length > 0) + { + return true; + } + } + catch { - return true; } - } - catch - { } } @@ -560,20 +563,20 @@ public static class SecureSaveVault } #endif - private static byte[] BuildEntropy(string category, string applicationIdentifier) + private static byte[] BuildEntropy(string category, string applicationIdentifier, string deviceBinding) { - string seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed + "|" + category; + string seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed + "|" + category; using (var sha = SHA256.Create()) { return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } - private static byte[] BuildAesKey(string category, string key, string applicationIdentifier) + private static byte[] BuildAesKey(string category, string key, string applicationIdentifier, string deviceBinding) { using (var sha = SHA256.Create()) { - string seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed + "|" + category + "|" + key; + string seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed + "|" + category + "|" + key; return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } @@ -635,21 +638,25 @@ public static class SecureSaveVault private static bool TryValidateSignature(string category, string payloadBase64, string signature) { IReadOnlyList identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + IReadOnlyList deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - string expectedSignature = ComputeSignature(category, payloadBase64, identifierVariants[i]); - if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + for (int d = 0; d < deviceBindingVariants.Count; d++) { - return true; + string expectedSignature = ComputeSignature(category, payloadBase64, identifierVariants[i], deviceBindingVariants[d]); + if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + { + return true; + } } } return false; } - private static string ComputeSignature(string category, string payloadBase64, string applicationIdentifier) + private static string ComputeSignature(string category, string payloadBase64, string applicationIdentifier, string deviceBinding) { - string signText = payloadBase64 + "|" + category + "|" + applicationIdentifier + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; + string signText = payloadBase64 + "|" + category + "|" + applicationIdentifier + "|" + SecretSeed + "|" + deviceBinding; using (var sha = SHA256.Create()) { byte[] hash = sha.ComputeHash(Encoding.UTF8.GetBytes(signText)); diff --git a/Assets/scripts/_runtimecache/StoreExpBottlePurchaseService.cs b/Assets/scripts/_runtimecache/StoreExpBottlePurchaseService.cs index f716f652..32e238ac 100644 --- a/Assets/scripts/_runtimecache/StoreExpBottlePurchaseService.cs +++ b/Assets/scripts/_runtimecache/StoreExpBottlePurchaseService.cs @@ -97,13 +97,13 @@ public static class StoreExpBottlePurchaseService if (!HasEnoughCurrency(primaryCost.currencyType, totalCost)) { - failureMessage = LocalizationService.Get("store.error.insufficient_currency", "货币不足"); + failureMessage = GetInsufficientCurrencyMessage(primaryCost.currencyType); return false; } if (!TrySpendCurrency(primaryCost.currencyType, totalCost)) { - failureMessage = LocalizationService.Get("store.error.insufficient_currency", "货币不足"); + failureMessage = GetInsufficientCurrencyMessage(primaryCost.currencyType); return false; } @@ -224,7 +224,7 @@ public static class StoreExpBottlePurchaseService var builder = new StringBuilder(); builder.Append("[StorePurchase] 已成功购买:"); builder.Append(itemSO != null ? itemSO.itemName : LocalizationService.Get("item.unknown.store_item", "Unknown Item")); - builder.Append(" | 花费Coins="); + builder.Append(" | 花费算力="); builder.Append(totalCost); builder.Append(" | 发放数量="); builder.Append(grantedCount); @@ -341,6 +341,11 @@ public static class StoreExpBottlePurchaseService || currencyType == storeItemSO.CurrencyType.material; } + private static string GetInsufficientCurrencyMessage(storeItemSO.CurrencyType currencyType) + { + return currencyType == storeItemSO.CurrencyType.material ? "记忆碎片不足" : "算力不足"; + } + private static bool HasEnoughCurrency(storeItemSO.CurrencyType currencyType, int amount) { switch (currencyType) diff --git a/Assets/scripts/_runtimecache/StoreOwnershipLedger.cs b/Assets/scripts/_runtimecache/StoreOwnershipLedger.cs index b153eef8..1c003384 100644 --- a/Assets/scripts/_runtimecache/StoreOwnershipLedger.cs +++ b/Assets/scripts/_runtimecache/StoreOwnershipLedger.cs @@ -16,6 +16,8 @@ public sealed class StoreOwnershipLedger : MonoBehaviour private readonly Dictionary entriesByItemId = new Dictionary(); private readonly List cachedStoreItems = new List(); private bool initialized; + private bool loadedFromSave; + private bool hasAnyRecoverableLocalState; private int lastSaveFrame = -1; [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] @@ -73,8 +75,8 @@ public sealed class StoreOwnershipLedger : MonoBehaviour initialized = true; StoreOwnershipPayload payload; - bool loadedFromSave = StoreOwnershipStorage.TryLoad(out payload); - bool hasAnyRecoverableLocalState = loadedFromSave || StoreOwnershipStorage.HasAnyRecoverableState(); + loadedFromSave = StoreOwnershipStorage.TryLoad(out payload); + hasAnyRecoverableLocalState = loadedFromSave || StoreOwnershipStorage.HasAnyRecoverableState(); RebuildFromPayload(payload); LoadStoreItems(); @@ -208,6 +210,12 @@ public sealed class StoreOwnershipLedger : MonoBehaviour return; } + if (!loadedFromSave && hasAnyRecoverableLocalState) + { + Debug.LogWarning("[StoreOwnershipLedger] Recoverable save state exists but could not be loaded; skip saving to avoid overwriting older store ownership data."); + return; + } + if (Application.isPlaying && lastSaveFrame == Time.frameCount) { return; diff --git a/Assets/scripts/_runtimecache/StoreOwnershipStorage.cs b/Assets/scripts/_runtimecache/StoreOwnershipStorage.cs index fd02681b..0c731c1b 100644 --- a/Assets/scripts/_runtimecache/StoreOwnershipStorage.cs +++ b/Assets/scripts/_runtimecache/StoreOwnershipStorage.cs @@ -138,20 +138,24 @@ public static class StoreOwnershipStorage var encryptedBytes = Convert.FromBase64String(envelope.payload); StoreOwnershipPayload loadedPayload = null; var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); - for (int i = 0; i < identifierVariants.Count; i++) + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); + for (int i = 0; i < identifierVariants.Count && loadedPayload == null; i++) { - try + for (int d = 0; d < deviceBindingVariants.Count; d++) { - var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i])); - var payloadJson = Encoding.UTF8.GetString(plainBytes); - loadedPayload = JsonUtility.FromJson(payloadJson); - if (loadedPayload != null) + try + { + var plainBytes = XorTransform(encryptedBytes, BuildKeyBytes(identifierVariants[i], deviceBindingVariants[d])); + var payloadJson = Encoding.UTF8.GetString(plainBytes); + loadedPayload = JsonUtility.FromJson(payloadJson); + if (loadedPayload != null) + { + break; + } + } + catch { - break; } - } - catch - { } } @@ -218,25 +222,19 @@ public static class StoreOwnershipStorage private static string ComputeSignature(string payloadBase64) { - var signText = payloadBase64 + "|" + SaveIdentityUtility.GetPrimaryApplicationIdentifier() + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; - using (var sha = SHA256.Create()) - { - var bytes = Encoding.UTF8.GetBytes(signText); - var hash = sha.ComputeHash(bytes); - return Convert.ToBase64String(hash); - } + return ComputeSignature(payloadBase64, SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } private static byte[] BuildKeyBytes() { - return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier()); + return BuildKeyBytes(SaveIdentityUtility.GetPrimaryApplicationIdentifier(), SaveIdentityUtility.GetPrimaryDeviceBinding()); } - private static byte[] BuildKeyBytes(string applicationIdentifier) + private static byte[] BuildKeyBytes(string applicationIdentifier, string deviceBinding) { using (var sha = SHA256.Create()) { - var seed = applicationIdentifier + "|" + SystemInfo.deviceUniqueIdentifier + "|" + SecretSeed; + var seed = applicationIdentifier + "|" + deviceBinding + "|" + SecretSeed; return sha.ComputeHash(Encoding.UTF8.GetBytes(seed)); } } @@ -244,21 +242,25 @@ public static class StoreOwnershipStorage private static bool TryValidateSignature(string payloadBase64, string signature) { var identifierVariants = SaveIdentityUtility.GetApplicationIdentifierVariants(); + var deviceBindingVariants = SaveIdentityUtility.GetDeviceBindingVariants(); for (int i = 0; i < identifierVariants.Count; i++) { - var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i]); - if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + for (int d = 0; d < deviceBindingVariants.Count; d++) { - return true; + var expectedSignature = ComputeSignature(payloadBase64, identifierVariants[i], deviceBindingVariants[d]); + if (string.Equals(expectedSignature, signature, StringComparison.Ordinal)) + { + return true; + } } } return false; } - private static string ComputeSignature(string payloadBase64, string applicationIdentifier) + private static string ComputeSignature(string payloadBase64, string applicationIdentifier, string deviceBinding) { - var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + SystemInfo.deviceUniqueIdentifier; + var signText = payloadBase64 + "|" + applicationIdentifier + "|" + SecretSeed + "|" + deviceBinding; using (var sha = SHA256.Create()) { var bytes = Encoding.UTF8.GetBytes(signText); diff --git a/Assets/scripts/dailyTask/dailyTaskManager.cs b/Assets/scripts/dailyTask/dailyTaskManager.cs index bd20d5b2..843eea1a 100644 --- a/Assets/scripts/dailyTask/dailyTaskManager.cs +++ b/Assets/scripts/dailyTask/dailyTaskManager.cs @@ -398,7 +398,7 @@ public class dailyTaskManager : MonoBehaviour switch (definition.rewardType) { case userTasksPool.RewardType.coins: - return gItemGet.Create("Coins", coinRewardSprite, Mathf.Max(1, definition.rewardAmount), ItemRarity.Common); + return gItemGet.Create("算力", coinRewardSprite, Mathf.Max(1, definition.rewardAmount), ItemRarity.Common); case userTasksPool.RewardType.expBottle: { diff --git a/Assets/scripts/dailyTask/taskPool/10100_usertasks.asset b/Assets/scripts/dailyTask/taskPool/10100_usertasks.asset index 565d2f8e..adcce515 100644 --- a/Assets/scripts/dailyTask/taskPool/10100_usertasks.asset +++ b/Assets/scripts/dailyTask/taskPool/10100_usertasks.asset @@ -19,7 +19,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 1 rewardType: 0 - rewardAmount: 1 + rewardAmount: 50 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -30,7 +30,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 3 rewardType: 0 - rewardAmount: 1 + rewardAmount: 150 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -41,7 +41,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 99 rewardType: 0 - rewardAmount: 1 + rewardAmount: 120 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -52,7 +52,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 1000000 rewardType: 0 - rewardAmount: 1 + rewardAmount: 120 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -63,7 +63,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 10000000 rewardType: 0 - rewardAmount: 1 + rewardAmount: 300 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -74,7 +74,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 1 rewardType: 0 - rewardAmount: 1 + rewardAmount: 50 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -86,7 +86,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 1 rewardType: 0 - rewardAmount: 1 + rewardAmount: 100 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -97,18 +97,18 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 900 rewardType: 0 - rewardAmount: 1 + rewardAmount: 100 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 selectionWeight: 1 - taskID: 10109 - description: "\u6D88\u8D39 2000 coins" + description: "\u6D88\u8D39 2000 \u7B97\u529B" taskType: 7 refreshFrequency: 1 targetValue: 2000 rewardType: 0 - rewardAmount: 1 + rewardAmount: 200 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 @@ -119,7 +119,7 @@ MonoBehaviour: refreshFrequency: 1 targetValue: 3 rewardType: 0 - rewardAmount: 1 + rewardAmount: 180 rewardExpBottleKind: 0 rewardDushMaterialKind: 0 addToTaskPool: 1 diff --git a/Assets/scripts/gamePlay_gameplay/GameManager.cs b/Assets/scripts/gamePlay_gameplay/GameManager.cs index 73f44830..5fb57d91 100644 --- a/Assets/scripts/gamePlay_gameplay/GameManager.cs +++ b/Assets/scripts/gamePlay_gameplay/GameManager.cs @@ -1289,7 +1289,7 @@ public class GameManager : MonoBehaviour yield return null; } } - gNotice.recommendation.display(LocalizationService.Get("gameplay.notice.game_start", "游戏开始!")); + // gNotice.recommendation.display(LocalizationService.Get("gameplay.notice.game_start", "游戏开始!")); // Resume using PauseManager PauseManager.Instance?.Pause(false); @@ -1349,7 +1349,7 @@ public class GameManager : MonoBehaviour yield return null; } } - gNotice.recommendation.display(LocalizationService.Get("gameplay.notice.game_start", "游戏开始!")); + // gNotice.recommendation.display(LocalizationService.Get("gameplay.notice.game_start", "游戏开始!")); // Resume PauseManager.Instance?.Pause(false); @@ -1441,7 +1441,7 @@ public class GameManager : MonoBehaviour yield return null; } } - gNotice.recommendation.display(LocalizationService.Get("gameplay.notice.game_start", "游戏开始!")); + // gNotice.recommendation.display(LocalizationService.Get("gameplay.notice.game_start", "游戏开始!")); // Resume PauseManager.Instance?.Pause(false); diff --git a/Assets/scripts/gamePlay_gameplay/TrackTouchInput.cs b/Assets/scripts/gamePlay_gameplay/TrackTouchInput.cs index 46953ee4..26e212b0 100644 --- a/Assets/scripts/gamePlay_gameplay/TrackTouchInput.cs +++ b/Assets/scripts/gamePlay_gameplay/TrackTouchInput.cs @@ -1,15 +1,25 @@ using System.Collections.Generic; using UnityEngine; +#if ENABLE_INPUT_SYSTEM +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.EnhancedTouch; +using ETouch = UnityEngine.InputSystem.EnhancedTouch.Touch; +#endif /// /// 手游触屏输入分发器:每帧遍历所有触摸点(及编辑器鼠标),用 Physics2D.OverlapPoint /// 命中带 TrackTouchZone 的透明 Collider2D,把按下/抬起转发给 InputManager。 /// -/// 为什么用这种方式而不是 UI 的 IPointerDownHandler: +/// 【多点触控根因】项目 activeInputHandler = Both(同时启用新旧输入系统)。 +/// 在这种配置下,旧版 UnityEngine.Input.touches 走的是兼容 shim,同时按多指时 +/// 常常只上报一个触点 → 只能触发一个轨道。所以这里优先用新输入系统的 +/// EnhancedTouch(Touch.activeTouches),它能可靠上报所有并发手指; +/// 仅在没有新输入系统时回退到旧版 Input.touches。判定逻辑完全不变。 +/// +/// 为什么用物理命中而不是 UI 的 IPointerDownHandler: /// - 轨道会平移+旋转晃动,点击区必须跟随晃动的 Collider(OverlapPoint 支持旋转过的碰撞体)。 -/// - 需要多点触控:每根手指独立按住各自的轨道(靠 fingerId 配对按下/抬起)。 +/// - 需要多点触控:每根手指独立按住各自的轨道(靠 touchId 配对按下/抬起)。 /// -/// 判定逻辑完全不变:这里只调用现成的 PressTrack/ReleaseTrack, /// 判定时间戳仍由 Note.HandlePress 读取 GameplayClock.NowSongTime(dspTime)。 /// /// 用法:场景里放一个空物体挂本脚本,把主相机拖到 gameplayCamera(留空则自动取 Camera.main)。 @@ -35,10 +45,8 @@ public class TrackTouchInput : MonoBehaviour "留空自动按相机 orthographic 判断;一般不用手动改。")] [SerializeField] private bool forceOrthographicMode = false; - // fingerId -> 当前按住的轨道索引。用于在抬起/取消时精确释放对应轨道。 + // 触点 id -> 当前按住的轨道索引。用于在抬起/取消时精确释放对应轨道。 private readonly Dictionary _activeTouches = new Dictionary(); - // 鼠标模拟用的"手指 id",取一个不会和真实 fingerId 冲突的值。 - private const int MouseFingerId = -100; private int _mouseHeldTrack = -1; private Camera Cam @@ -50,14 +58,13 @@ public class TrackTouchInput : MonoBehaviour } } - private void Awake() +#if ENABLE_INPUT_SYSTEM + private void OnEnable() { - // 【多点触控根因修复】若 multiTouchEnabled 为 false,Input.touchCount 永远 ≤1, - // 同时按多条轨道时只会报告一个触点 → 只能触发一个轨道。强制开启多点触控。 - // simulateMouseWithTouches 关掉:避免触摸被合成成鼠标事件,与真实多指冲突。 - Input.multiTouchEnabled = true; - Input.simulateMouseWithTouches = false; + // 开启增强触摸,Touch.activeTouches 才会被填充。 + EnhancedTouchSupport.Enable(); } +#endif private void Update() { @@ -67,50 +74,101 @@ public class TrackTouchInput : MonoBehaviour Camera cam = Cam; if (cam == null) return; - ProcessTouches(im, cam); + int touchCount = ProcessTouches(im, cam); - if (enableMouseFallback && Input.touchCount == 0) + if (enableMouseFallback && touchCount == 0) { ProcessMouse(im, cam); } } - private void ProcessTouches(InputManager im, Camera cam) + /// 处理所有并发触点,返回本帧触点数量。 + private int ProcessTouches(InputManager im, Camera cam) { - for (int i = 0; i < Input.touchCount; i++) +#if ENABLE_INPUT_SYSTEM + // 优先走新输入系统的增强触摸:可靠上报所有并发手指。 + var touches = ETouch.activeTouches; + int count = touches.Count; + for (int i = 0; i < count; i++) + { + ETouch t = touches[i]; + switch (t.phase) + { + case UnityEngine.InputSystem.TouchPhase.Began: + HandleTouchBegan(im, cam, t.touchId, t.screenPosition); + break; + case UnityEngine.InputSystem.TouchPhase.Ended: + case UnityEngine.InputSystem.TouchPhase.Canceled: + HandleTouchEnded(im, t.touchId); + break; + // Moved / Stationary:手指在轨道内保持按住即可,不重新判定归属。 + } + } + return count; +#else + // 回退:旧版 Input.touches(仅在未启用新输入系统时使用)。 + int count = Input.touchCount; + for (int i = 0; i < count; i++) { Touch t = Input.GetTouch(i); - switch (t.phase) { case TouchPhase.Began: - { - int track = ResolveTrack(cam, t.position); - if (track >= 0) - { - _activeTouches[t.fingerId] = track; - im.PressTrack(track); - } + HandleTouchBegan(im, cam, t.fingerId, t.position); break; - } case TouchPhase.Ended: case TouchPhase.Canceled: - { - if (_activeTouches.TryGetValue(t.fingerId, out int track)) - { - _activeTouches.Remove(t.fingerId); - im.ReleaseTrack(track); - } + HandleTouchEnded(im, t.fingerId); break; - } - // Moved / Stationary:手指在轨道内保持按住即可,不重新判定归属, - // 避免手指轻微滑动跨到相邻轨道时反复 Press/Release 造成误判。 } } + return count; +#endif + } + + private void HandleTouchBegan(InputManager im, Camera cam, int touchId, Vector2 screenPos) + { + int track = ResolveTrack(cam, screenPos); + if (track >= 0) + { + _activeTouches[touchId] = track; + im.PressTrack(track); + } + } + + private void HandleTouchEnded(InputManager im, int touchId) + { + if (_activeTouches.TryGetValue(touchId, out int track)) + { + _activeTouches.Remove(touchId); + im.ReleaseTrack(track); + } } private void ProcessMouse(InputManager im, Camera cam) { +#if ENABLE_INPUT_SYSTEM + var mouse = Mouse.current; + if (mouse == null) return; + + if (mouse.leftButton.wasPressedThisFrame) + { + int track = ResolveTrack(cam, mouse.position.ReadValue()); + if (track >= 0) + { + _mouseHeldTrack = track; + im.PressTrack(track); + } + } + else if (mouse.leftButton.wasReleasedThisFrame) + { + if (_mouseHeldTrack >= 0) + { + im.ReleaseTrack(_mouseHeldTrack); + _mouseHeldTrack = -1; + } + } +#else if (Input.GetMouseButtonDown(0)) { int track = ResolveTrack(cam, Input.mousePosition); @@ -128,6 +186,7 @@ public class TrackTouchInput : MonoBehaviour _mouseHeldTrack = -1; } } +#endif } /// @@ -135,8 +194,7 @@ public class TrackTouchInput : MonoBehaviour /// /// 相机移动/晃动/推拉时,每帧都用当前相机状态转换,所以命中自动跟随相机。 /// - 正交相机:ScreenToWorldPoint 忽略深度,直接取 x/y。 - /// - 透视相机:从相机发射线,求与轨道平面(Z = trackPlaneWorldZ)的交点, - /// 避免因相机 Z 变化(如 cameraDash)导致命中点偏移。 + /// - 透视相机:从相机发射线,求与轨道平面(Z = trackPlaneWorldZ)的交点。 /// private int ResolveTrack(Camera cam, Vector2 screenPos) { @@ -149,7 +207,6 @@ public class TrackTouchInput : MonoBehaviour } else { - // 透视:射线与轨道平面(法线 +Z,过 z = trackPlaneWorldZ)求交。 Ray ray = cam.ScreenPointToRay(screenPos); float denom = ray.direction.z; if (Mathf.Abs(denom) < 1e-6f) @@ -187,5 +244,9 @@ public class TrackTouchInput : MonoBehaviour } _activeTouches.Clear(); _mouseHeldTrack = -1; + +#if ENABLE_INPUT_SYSTEM + EnhancedTouchSupport.Disable(); +#endif } } diff --git a/Assets/scripts/gamePlay_gameplay/network_submit/ArenaRoomService.cs b/Assets/scripts/gamePlay_gameplay/network_submit/ArenaRoomService.cs index 2c7e0145..b43ab7bd 100644 --- a/Assets/scripts/gamePlay_gameplay/network_submit/ArenaRoomService.cs +++ b/Assets/scripts/gamePlay_gameplay/network_submit/ArenaRoomService.cs @@ -201,30 +201,51 @@ namespace GameServer.Client public async Task CreateRoom(string songId, string songName, string difficulty, string password = null) { - await EnsureConnected(); - JObject resp = await SendAction("create_room", new + try { - song_id = songId, - song_name = songName, - difficulty = difficulty, - password = string.IsNullOrWhiteSpace(password) ? null : password - }); - ArenaRoomSnapshot snapshot = NormalizeSnapshotFromActionData("create_room", resp); - SetCurrentRoom(snapshot); - return snapshot; + await EnsureConnected(); + JObject resp = await SendAction("create_room", new + { + song_id = songId, + song_name = songName, + difficulty = difficulty, + password = string.IsNullOrWhiteSpace(password) ? null : password + }); + ArenaRoomSnapshot snapshot = NormalizeSnapshotFromActionData("create_room", resp); + SetCurrentRoom(snapshot); + return snapshot; + } + catch (Exception ex) + { + NetworkManager.ShowUserFacingNetworkError(ex.Message); + throw; + } } public async Task JoinRoom(string roomCode, string password = null) { - await EnsureConnected(); - JObject resp = await SendAction("join_room", new + try { - room_code = roomCode, - password = string.IsNullOrWhiteSpace(password) ? null : password - }); - ArenaRoomSnapshot snapshot = NormalizeSnapshotFromActionData("join_room", resp); - SetCurrentRoom(snapshot); - return snapshot; + if (string.IsNullOrWhiteSpace(roomCode)) + { + throw new Exception("MISSING_ROOM_CODE: room_code is empty"); + } + + await EnsureConnected(); + JObject resp = await SendAction("join_room", new + { + room_code = roomCode.Trim(), + password = string.IsNullOrWhiteSpace(password) ? null : password + }); + ArenaRoomSnapshot snapshot = NormalizeSnapshotFromActionData("join_room", resp); + SetCurrentRoom(snapshot); + return snapshot; + } + catch (Exception ex) + { + NetworkManager.ShowUserFacingNetworkError(ex.Message); + throw; + } } public async Task LeaveRoom() @@ -385,6 +406,31 @@ namespace GameServer.Client return snapshot; } + public async Task ChangeRoomSong(string songId, string songName, string difficulty) + { + try + { + await EnsureConnected(); + JObject resp = await SendAction("change_room_song", new + { + song_id = songId, + song_name = songName, + difficulty = difficulty + }); + ArenaRoomSnapshot snapshot = NormalizeSnapshotFromActionData("change_room_song", resp); + if (snapshot != null) + { + SetCurrentRoom(snapshot); + } + return snapshot; + } + catch (Exception ex) + { + NetworkManager.ShowUserFacingNetworkError(ex.Message); + throw; + } + } + public async Task StartGame() { await EnsureConnected(); @@ -804,11 +850,11 @@ namespace GameServer.Client NetworkManager network = NetworkManager.Instance; if (network == null) { - throw new Exception("NetworkManager is not initialized"); + throw new Exception("NETWORK_NOT_READY: NetworkManager is not initialized"); } if (string.IsNullOrWhiteSpace(network.SteamId)) { - throw new Exception("steam_id is empty"); + throw new Exception("MISSING_STEAM_ID: steam_id is empty"); } _isConnecting = true; @@ -864,11 +910,11 @@ namespace GameServer.Client NetworkManager network = NetworkManager.Instance; if (network == null) { - throw new Exception("NetworkManager is not initialized"); + throw new Exception("NETWORK_NOT_READY: NetworkManager is not initialized"); } if (string.IsNullOrWhiteSpace(network.SteamId)) { - throw new Exception("steam_id is empty"); + throw new Exception("MISSING_STEAM_ID: steam_id is empty"); } _isSocialConnecting = true; @@ -1213,6 +1259,15 @@ namespace GameServer.Client } return; } + case "room_song_changed": + { + ArenaRoomSnapshot snapshot = ReadRoomSnapshot(message); + if (snapshot != null) + { + Enqueue(() => SetCurrentRoom(snapshot)); + } + return; + } case "room_dismissed": { string roomCode = ReadString(message, "room_code"); @@ -1734,13 +1789,19 @@ namespace GameServer.Client { _shutdownLeaveAttempted = false; string previousRoomCode = CurrentRoom != null ? CurrentRoom.room_code : null; + string previousSongId = CurrentRoom != null ? CurrentRoom.song_id : null; + string previousDifficulty = CurrentRoom != null ? CurrentRoom.difficulty : null; if (snapshot == null || !IsRoomStartedState(snapshot.status)) { _isLaunchingArenaGameplay = false; } if (snapshot == null || (!string.IsNullOrWhiteSpace(previousRoomCode) - && !string.Equals(previousRoomCode, snapshot.room_code, StringComparison.Ordinal))) + && !string.Equals(previousRoomCode, snapshot.room_code, StringComparison.Ordinal)) + || (snapshot != null + && string.Equals(previousRoomCode, snapshot.room_code, StringComparison.Ordinal) + && (!string.Equals(previousSongId, snapshot.song_id, StringComparison.Ordinal) + || !string.Equals(previousDifficulty, snapshot.difficulty, StringComparison.OrdinalIgnoreCase)))) { ClearRoomRankingScores(); } @@ -2353,7 +2414,7 @@ namespace GameServer.Client { string finalCode = code ?? "ERROR"; string finalMessage = message ?? "Unknown arena error"; - gNotice.error.display($"{finalCode}: {finalMessage}"); + gNotice.error.display(NetworkManager.DescribeUserFacingNetworkError($"{finalCode}: {finalMessage}")); OnErrorReceived?.Invoke(finalCode, finalMessage); }); } @@ -3890,4 +3951,3 @@ namespace GameServer.Client } } } - diff --git a/Assets/scripts/gamePlay_gameplay/network_submit/MessageTypes.cs b/Assets/scripts/gamePlay_gameplay/network_submit/MessageTypes.cs index 4cef6e8e..07af7606 100644 --- a/Assets/scripts/gamePlay_gameplay/network_submit/MessageTypes.cs +++ b/Assets/scripts/gamePlay_gameplay/network_submit/MessageTypes.cs @@ -337,6 +337,7 @@ namespace GameServer.Client [JsonProperty("receiver_id")] public string receiver_id; [JsonProperty("uid")] public int uid; [JsonProperty("display_name")] public string display_name; + [JsonProperty("player_title")] public string player_title; [JsonProperty("avatar_url")] public string avatar_url; [JsonProperty("content")] public string content; [JsonProperty("created_at")] public string created_at; diff --git a/Assets/scripts/gamePlay_gameplay/network_submit/NetworkManager.cs b/Assets/scripts/gamePlay_gameplay/network_submit/NetworkManager.cs index 357cb44c..faf64a1b 100644 --- a/Assets/scripts/gamePlay_gameplay/network_submit/NetworkManager.cs +++ b/Assets/scripts/gamePlay_gameplay/network_submit/NetworkManager.cs @@ -21,6 +21,8 @@ public class NetworkManager : MonoBehaviour public static NetworkManager Instance { get; private set; } private static string _startupSteamId = string.Empty; private static string _startupSteamDisplayName = string.Empty; + private static string _lastUserFacingNetworkError = string.Empty; + private static float _lastUserFacingNetworkErrorAt; private static readonly Dictionary _remoteIdentityCache = new Dictionary(StringComparer.Ordinal); private static readonly Dictionary> _remoteProfileTasks = @@ -99,6 +101,8 @@ public class NetworkManager : MonoBehaviour Instance = null; _startupSteamId = string.Empty; _startupSteamDisplayName = string.Empty; + _lastUserFacingNetworkError = string.Empty; + _lastUserFacingNetworkErrorAt = 0f; _remoteIdentityCache.Clear(); _remoteProfileTasks.Clear(); } @@ -627,6 +631,7 @@ public class NetworkManager : MonoBehaviour { if (OnlineModeSettings.IsLocalOnlyMode) { + NotifyNetworkError("LOCAL_ONLY_MODE"); return new ArenaCreateResponse { success = false, @@ -635,6 +640,7 @@ public class NetworkManager : MonoBehaviour }; } + EnsureSteamIdAvailableForOnlineFeature(); var req = new ArenaCreateRequest { steam_id = SteamId, @@ -643,6 +649,13 @@ public class NetworkManager : MonoBehaviour password = password }; ArenaCreateResponse resp = await PostJson(BuildApiUrl("/api/arena/create"), req, CancellationToken.None); + if (resp == null || !resp.success) + { + string error = BuildErrorText(resp?.error_code, resp?.message, "CREATE_ROOM_FAILED"); + NotifyNetworkError(error); + throw new Exception(error); + } + OnArenaCreated?.Invoke(resp); return resp; } @@ -651,6 +664,7 @@ public class NetworkManager : MonoBehaviour { if (OnlineModeSettings.IsLocalOnlyMode) { + NotifyNetworkError("LOCAL_ONLY_MODE"); return new ArenaJoinResponse { success = false, @@ -660,6 +674,7 @@ public class NetworkManager : MonoBehaviour }; } + EnsureSteamIdAvailableForOnlineFeature(); var req = new ArenaJoinRequest { steam_id = SteamId, @@ -667,6 +682,13 @@ public class NetworkManager : MonoBehaviour password = password }; ArenaJoinResponse resp = await PostJson(BuildApiUrl("/api/arena/join"), req, CancellationToken.None); + if (resp == null || !resp.success) + { + string error = BuildErrorText(resp?.error_code, resp?.message, "JOIN_ROOM_FAILED"); + NotifyNetworkError(error); + throw new Exception(error); + } + OnArenaJoined?.Invoke(resp); return resp; } @@ -1682,6 +1704,15 @@ public class NetworkManager : MonoBehaviour return new InvalidOperationException(message); } + private void EnsureSteamIdAvailableForOnlineFeature() + { + RefreshSteamIdentity(true); + if (string.IsNullOrWhiteSpace(SteamId)) + { + throw new InvalidOperationException("MISSING_STEAM_ID: steam_id is empty"); + } + } + private ProfileData BuildLocalOnlyProfile(string targetSteamId) { string normalizedSteamId = string.IsNullOrWhiteSpace(targetSteamId) ? string.Empty : targetSteamId.Trim(); @@ -1850,11 +1881,135 @@ public class NetworkManager : MonoBehaviour private static void NotifyNetworkError(string message) { - if (!string.IsNullOrWhiteSpace(message)) + ShowUserFacingNetworkError(message); + } + + public static void ShowUserFacingNetworkError(string message) + { + string userMessage = DescribeUserFacingNetworkError(message); + if (!string.IsNullOrWhiteSpace(userMessage)) { - gNotice.error.display(message); + float now = Time.realtimeSinceStartup; + if (string.Equals(_lastUserFacingNetworkError, userMessage, StringComparison.Ordinal) + && now - _lastUserFacingNetworkErrorAt < 0.75f) + { + return; + } + + _lastUserFacingNetworkError = userMessage; + _lastUserFacingNetworkErrorAt = now; + gNotice.error.display(userMessage); } } + + public static string DescribeUserFacingNetworkError(string message) + { + if (string.IsNullOrWhiteSpace(message)) + { + return "网络错误,请稍后重试"; + } + + string raw = message.Trim(); + string upper = raw.ToUpperInvariant(); + + if (upper.Contains("LOCAL_ONLY_MODE") || raw.IndexOf("local-only mode", StringComparison.OrdinalIgnoreCase) >= 0) + { + return "当前为离线模式,无法使用联网功能"; + } + + if (upper.Contains("MISSING_STEAM_ID") + || upper.Contains("STEAM_ID IS EMPTY") + || upper.Contains("TARGETSTEAMID IS EMPTY") + || upper.Contains("STEAMID IS EMPTY") + || upper.Contains("STEAM ID IS EMPTY")) + { + return "无法得到 SteamID,请确认已启动 Steam、登录账号并保持在线"; + } + + if (upper.Contains("NETWORKMANAGER IS NOT INITIALIZED") || upper.Contains("NETWORK_NOT_READY")) + { + return "网络模块尚未初始化,请稍后重试"; + } + + if (upper.Contains("ROOM_NOT_FOUND") + || raw.IndexOf("room not found", StringComparison.OrdinalIgnoreCase) >= 0 + || raw.IndexOf("房间不存在", StringComparison.OrdinalIgnoreCase) >= 0) + { + return "房间不存在或已解散"; + } + + if (upper.Contains("ALREADY_IN_ROOM")) + { + return "你已经在房间中"; + } + + if (upper.Contains("MISSING_ROOM_CODE") || upper.Contains("ROOM_CODE IS EMPTY")) + { + return "房间号不能为空"; + } + + if (upper.Contains("ROOM_FULL")) + { + return "房间已满"; + } + + if (upper.Contains("ROOM_STARTED") || upper.Contains("GAME_STARTED") || upper.Contains("ALREADY_STARTED")) + { + return "房间已开始游戏,无法加入"; + } + + if (upper.Contains("WRONG_PASSWORD") || upper.Contains("INVALID_PASSWORD") || upper.Contains("PASSWORD")) + { + return "房间密码错误"; + } + + if (upper.Contains("NOT_IN_ROOM")) + { + return "当前不在房间中"; + } + + if (upper.Contains("TIMED OUT") + || upper.Contains("TIMEOUT") + || upper.Contains("CONNECTFAILURE") + || upper.Contains("CONNECTIONERROR") + || upper.Contains("CONNECTION FAILED") + || upper.Contains("CANNOT CONNECT") + || upper.Contains("COULD NOT RESOLVE") + || upper.Contains("RESOLVE DESTINATION HOST") + || upper.Contains("NAMERESOLUTION") + || upper.Contains("HOST UNREACHABLE") + || upper.Contains("CONNECTION REFUSED") + || upper.Contains("CONNECTION RESET") + || upper.Contains("SOCKET") + || raw.IndexOf("unable to connect", StringComparison.OrdinalIgnoreCase) >= 0 + || raw.IndexOf("failed to connect", StringComparison.OrdinalIgnoreCase) >= 0) + { + return "未联网或服务器连接失败,请检查网络后重试"; + } + + if (upper.Contains("HTTP") && (upper.Contains(" 404") || upper.Contains("404:"))) + { + return "请求的服务不存在,请稍后重试"; + } + + if (upper.Contains("HTTP") && (upper.Contains(" 500") || upper.Contains("500:"))) + { + return "服务器暂时无法处理请求,请稍后重试"; + } + + if (raw.Length > 80) + { + return "网络错误,请稍后重试"; + } + + return raw; + } + + private static string BuildErrorText(string code, string message, string fallbackCode) + { + string safeCode = string.IsNullOrWhiteSpace(code) ? fallbackCode : code.Trim(); + string safeMessage = string.IsNullOrWhiteSpace(message) ? safeCode : message.Trim(); + return $"{safeCode}: {safeMessage}"; + } } } - diff --git a/Assets/scripts/gamePlay_gameplay/ranking/rankingListPrefab.prefab b/Assets/scripts/gamePlay_gameplay/ranking/rankingListPrefab.prefab index 09f30303..c9fa7fb3 100644 --- a/Assets/scripts/gamePlay_gameplay/ranking/rankingListPrefab.prefab +++ b/Assets/scripts/gamePlay_gameplay/ranking/rankingListPrefab.prefab @@ -403,10 +403,10 @@ MonoBehaviour: rkPrefab: {fileID: 4439332187331332072, guid: 5d56483f68516d94e9277bbac63f8525, type: 3} rkParent: {fileID: 4242620377161803188} btmSprites: - - {fileID: 21300000, guid: 040be0e474e09894ca320b08d9462cc8, type: 3} - - {fileID: 21300000, guid: 60cfd84ae231a4943b3f0f6cf0dcf409, type: 3} - - {fileID: 21300000, guid: 1258ac417dd158a48b05eeedb739c469, type: 3} - - {fileID: 21300000, guid: 28c51f93b6260224c867f45f411a0e85, type: 3} + - {fileID: 21300000, guid: 9e6a75c290497c4469b9b86d5eab72a1, type: 3} + - {fileID: 21300000, guid: 9e6a75c290497c4469b9b86d5eab72a1, type: 3} + - {fileID: 21300000, guid: 9e6a75c290497c4469b9b86d5eab72a1, type: 3} + - {fileID: 21300000, guid: 7f3e2cfd199d3a844b15751f1eddf15b, type: 3} --- !u!1 &2889696334540093026 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/scripts/gamePlay_gameplay/ranking/rkPrefab.prefab b/Assets/scripts/gamePlay_gameplay/ranking/rkPrefab.prefab index 855293bf..ccac53e9 100644 --- a/Assets/scripts/gamePlay_gameplay/ranking/rkPrefab.prefab +++ b/Assets/scripts/gamePlay_gameplay/ranking/rkPrefab.prefab @@ -140,7 +140,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 28c51f93b6260224c867f45f411a0e85, type: 3} + m_Sprite: {fileID: 21300000, guid: 9e6a75c290497c4469b9b86d5eab72a1, type: 3} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -208,7 +208,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -287,7 +287,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -422,7 +422,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -501,7 +501,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -589,7 +589,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 28c51f93b6260224c867f45f411a0e85, type: 3} + m_Sprite: {fileID: 21300000, guid: 9e6a75c290497c4469b9b86d5eab72a1, type: 3} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -657,7 +657,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 diff --git a/Assets/scripts/gamePlay_gameplay/settlePrefab/rewardPrefab.cs b/Assets/scripts/gamePlay_gameplay/settlePrefab/rewardPrefab.cs index b0dea440..caf1335b 100644 --- a/Assets/scripts/gamePlay_gameplay/settlePrefab/rewardPrefab.cs +++ b/Assets/scripts/gamePlay_gameplay/settlePrefab/rewardPrefab.cs @@ -58,7 +58,7 @@ public class rewardPrefab : MonoBehaviour switch (rewardType) { case RewardVisualType.Coins: - return "金币"; + return "算力"; case RewardVisualType.Material: return "记忆碎片"; case RewardVisualType.PlayerExp: diff --git a/Assets/scripts/gameplay_teamUI/teamUIController.cs b/Assets/scripts/gameplay_teamUI/teamUIController.cs index 608f48b0..73faa599 100644 --- a/Assets/scripts/gameplay_teamUI/teamUIController.cs +++ b/Assets/scripts/gameplay_teamUI/teamUIController.cs @@ -1153,11 +1153,11 @@ public class teamUIController : MonoBehaviour */ // Load ally slot IDs from PlayerPrefs - allySlotIds[0] = PlayerPrefs.GetInt("selected_heroSlot01_heroID", 0); - allySlotIds[1] = PlayerPrefs.GetInt("selected_heroSlot02_heroID", 0); - allySlotIds[2] = PlayerPrefs.GetInt("selected_heroSlot03_heroID", 0); - allySlotIds[3] = PlayerPrefs.GetInt("selected_heroSlot04_heroID", 0); - allySlotIds[4] = PlayerPrefs.GetInt("selected_heroSlot05_heroID", 0); + allySlotIds[0] = TeamSelectionDefaults.ReadHeroId(1); + allySlotIds[1] = TeamSelectionDefaults.ReadHeroId(2); + allySlotIds[2] = TeamSelectionDefaults.ReadHeroId(3); + allySlotIds[3] = TeamSelectionDefaults.ReadHeroId(4); + allySlotIds[4] = TeamSelectionDefaults.ReadHeroId(5); PopulateAllySOsFromIds(); diff --git a/Assets/scripts/roomSystem/ask.prefab b/Assets/scripts/roomSystem/ask.prefab index baa19de8..8efaff5b 100644 --- a/Assets/scripts/roomSystem/ask.prefab +++ b/Assets/scripts/roomSystem/ask.prefab @@ -36,8 +36,8 @@ RectTransform: 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: -51.2} - m_SizeDelta: {x: 200, y: 32.156} + m_AnchoredPosition: {x: 0, y: -49.6} + m_SizeDelta: {x: 146, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5597810916468765611 CanvasRenderer: @@ -67,8 +67,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 7621278097234006379, guid: 59df2390a598c904bab275d1ea743916, type: 3} - m_Type: 1 + m_Sprite: {fileID: -2689630615245801869, guid: 2a46b5f36d286d447bd74d1db9a72cd7, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -157,8 +157,8 @@ RectTransform: 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: -9.196} - m_SizeDelta: {x: 200, y: 110.402} + m_AnchoredPosition: {x: 0, y: -49.6} + m_SizeDelta: {x: 146, y: 56} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5591616715459838773 CanvasRenderer: @@ -188,8 +188,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 7919194353434859991, guid: b35fcaa46fa9f3e49b71c103f69df698, type: 3} - m_Type: 1 + m_Sprite: {fileID: -566881566719626471, guid: 56ba1aaa875c6b7489f77555fd212d3e, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -355,8 +355,8 @@ RectTransform: 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_AnchoredPosition: {x: 0, y: 1.4682007} + m_SizeDelta: {x: 0, y: -2.9365} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3720672462226780915 CanvasRenderer: @@ -379,7 +379,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_Color: {r: 0.63529414, g: 0.3529412, b: 0.16862746, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -387,7 +387,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 @@ -456,7 +456,7 @@ MonoBehaviour: m_Top: 0 m_Bottom: 0 m_ChildAlignment: 4 - m_Spacing: 0 + m_Spacing: -100 m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 1 m_ChildControlWidth: 0 @@ -500,8 +500,8 @@ RectTransform: 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: -171.99} - m_SizeDelta: {x: 300, y: 40} + m_AnchoredPosition: {x: 0, y: -171.1} + m_SizeDelta: {x: 194.5543, y: 52.3284} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6903183453437413057 CanvasRenderer: @@ -531,8 +531,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 2561534620446350566, guid: 23a48ca1e983a4c47971fcf7eab26b89, type: 3} - m_Type: 1 + m_Sprite: {fileID: -6405685121925378258, guid: 92151af6550eb214aa4daecf4ea48edb, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -622,7 +622,7 @@ RectTransform: 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: 555, y: 264.2} + m_SizeDelta: {x: 450, y: 230} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7601750316680178786 CanvasRenderer: @@ -652,7 +652,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7f3b1220317607e44bbb8f0e1998044a, type: 3} + m_Sprite: {fileID: 21300000, guid: a31ac6012ab10b146878694e7d720b11, type: 3} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -698,8 +698,8 @@ RectTransform: 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: 16} - m_SizeDelta: {x: 200, y: 60} + m_AnchoredPosition: {x: -100.424805, y: 16} + m_SizeDelta: {x: 346.8495, y: 60} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &67614290717671043 CanvasRenderer: @@ -729,8 +729,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 4717104774431673990, guid: 2204c5120d209e24b8d8473101c0670f, type: 3} - m_Type: 1 + m_Sprite: {fileID: 21300000, guid: 7edca03691f782d46ac361a681ce5685, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -874,8 +874,8 @@ RectTransform: 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_AnchoredPosition: {x: -2.8545, y: 2.3508} + m_SizeDelta: {x: -5.7091, y: -4.7016} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &316840073610798188 CanvasRenderer: @@ -898,7 +898,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.63529414, g: 0.3529412, b: 0.16862746, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -906,8 +906,8 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} - m_FontSize: 18 + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 1 @@ -1104,8 +1104,8 @@ RectTransform: 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_AnchoredPosition: {x: -2.947403, y: 2.0960999} + m_SizeDelta: {x: -5.8948, y: -4.1923} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2489646231650356367 CanvasRenderer: @@ -1128,7 +1128,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.09803922, g: 0.32941177, b: 0.6, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -1136,8 +1136,8 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} - m_FontSize: 20 + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 1 @@ -1148,7 +1148,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u521B\u5EFA\u623F\u95F4\u5E76\u4F5C\u4E3A\u623F\u4E3B" + m_Text: "\u521B\u5EFA\u623F\u95F4" --- !u!1 &4714805719805124595 GameObject: m_ObjectHideFlags: 0 @@ -1373,8 +1373,8 @@ MonoBehaviour: m_Calls: [] m_text: "\u200B" m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 452fa97492cae71479cf143f29930751, type: 2} - m_sharedMaterial: {fileID: -346136068272202111, guid: 452fa97492cae71479cf143f29930751, type: 2} + m_fontAsset: {fileID: 11400000, guid: 7cad3f54ac7b53d4885f00c16f1a6929, type: 2} + m_sharedMaterial: {fileID: -346136068272202111, guid: 7cad3f54ac7b53d4885f00c16f1a6929, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/scripts/roomSystem/globalChatSystem.cs b/Assets/scripts/roomSystem/globalChatSystem.cs index 0a2f99df..7594bcca 100644 --- a/Assets/scripts/roomSystem/globalChatSystem.cs +++ b/Assets/scripts/roomSystem/globalChatSystem.cs @@ -942,7 +942,8 @@ public class globalChatSystem : MonoBehaviour playerMessagePrefab controller = instance.GetComponentInChildren(); if (controller != null) { - controller.Bind(senderSteamId, avatarUrl, displayName, string.Empty, message.content, bubbleColor); + string title = !string.IsNullOrWhiteSpace(message.player_title) ? message.player_title : string.Empty; + controller.Bind(senderSteamId, avatarUrl, displayName, title, message.content, bubbleColor); } return instance; diff --git a/Assets/scripts/roomSystem/playerMessagePrefab/systemMessagePrefab.prefab b/Assets/scripts/roomSystem/playerMessagePrefab/systemMessagePrefab.prefab index 907f72be..6cb7ba98 100644 --- a/Assets/scripts/roomSystem/playerMessagePrefab/systemMessagePrefab.prefab +++ b/Assets/scripts/roomSystem/playerMessagePrefab/systemMessagePrefab.prefab @@ -38,7 +38,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 323.75, y: 30} + m_SizeDelta: {x: 380.56, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2228420748506963945 MonoBehaviour: @@ -83,7 +83,7 @@ MonoBehaviour: m_MinWidth: -1 m_MinHeight: -1 m_PreferredWidth: -1 - m_PreferredHeight: 30 + m_PreferredHeight: 0 m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 2 diff --git a/Assets/scripts/roomSystem/roomAsk.cs b/Assets/scripts/roomSystem/roomAsk.cs index a0ab3af3..45f4b7ee 100644 --- a/Assets/scripts/roomSystem/roomAsk.cs +++ b/Assets/scripts/roomSystem/roomAsk.cs @@ -100,6 +100,7 @@ public class roomAsk : MonoBehaviour catch (Exception ex) { Debug.LogWarning($"[roomAsk] Create room failed: {ex.Message}"); + GameServer.Client.NetworkManager.ShowUserFacingNetworkError(ex.Message); } } @@ -125,6 +126,7 @@ public class roomAsk : MonoBehaviour catch (Exception ex) { Debug.LogWarning($"[roomAsk] Join room failed: {ex.Message}"); + GameServer.Client.NetworkManager.ShowUserFacingNetworkError(ex.Message); } } diff --git a/Assets/scripts/roomSystem/roomDetails.cs b/Assets/scripts/roomSystem/roomDetails.cs index 75fb0020..3e9cfe6f 100644 --- a/Assets/scripts/roomSystem/roomDetails.cs +++ b/Assets/scripts/roomSystem/roomDetails.cs @@ -38,6 +38,10 @@ public class roomDetails : MonoBehaviour public Text thisSongName; public Text thisSongDifficulty; + [Header("change songs")] + public Dropdown songDropdown; + public Dropdown difficultyDropdown; + [Header("objs")] public GameObject roommatePrefab; public Transform roommateParent; @@ -82,6 +86,11 @@ public class roomDetails : MonoBehaviour private readonly List _pendingMessageLayoutDirtyRoots = new List(); private Coroutine _refocusChatInputCoroutine; private bool _refocusChatInputRequested; + private readonly List _selectableSongs = new List(); + private readonly List _selectableDifficulties = new List(); + private Coroutine _songLibraryWaitRoutine; + private bool _suppressSongDropdownEvents; + private bool _isChangingRoomSong; private const float ChatSendCooldownSeconds = 3f; private const int InitialHistoryLoadLimit = 20; @@ -162,6 +171,18 @@ public class roomDetails : MonoBehaviour sendMessageButton.onClick.AddListener(OnSendMessageClicked); } + if (songDropdown != null) + { + songDropdown.onValueChanged.RemoveListener(OnSongDropdownChanged); + songDropdown.onValueChanged.AddListener(OnSongDropdownChanged); + } + + if (difficultyDropdown != null) + { + difficultyDropdown.onValueChanged.RemoveListener(OnDifficultyDropdownChanged); + difficultyDropdown.onValueChanged.AddListener(OnDifficultyDropdownChanged); + } + if (playerMessageInputField != null) { playerMessageInputField.onEndEdit.RemoveListener(OnChatInputEndEdit); @@ -185,6 +206,7 @@ public class roomDetails : MonoBehaviour _ = InitializeRoomChatAsync(); Refresh(_service.CurrentRoom); + EnsureSongDropdownsReady(); } private void OnDestroy() @@ -225,6 +247,16 @@ public class roomDetails : MonoBehaviour sendMessageButton.onClick.RemoveListener(OnSendMessageClicked); } + if (songDropdown != null) + { + songDropdown.onValueChanged.RemoveListener(OnSongDropdownChanged); + } + + if (difficultyDropdown != null) + { + difficultyDropdown.onValueChanged.RemoveListener(OnDifficultyDropdownChanged); + } + if (playerMessageInputField != null) { playerMessageInputField.onEndEdit.RemoveListener(OnChatInputEndEdit); @@ -259,6 +291,12 @@ public class roomDetails : MonoBehaviour _refocusChatInputCoroutine = null; } + if (_songLibraryWaitRoutine != null) + { + StopCoroutine(_songLibraryWaitRoutine); + _songLibraryWaitRoutine = null; + } + RestoreDefaultChatPlaceholder(); if (_spawnedRoomRankingInstance != null) @@ -396,6 +434,7 @@ public class roomDetails : MonoBehaviour UpdateQuitButtonTexts(snapshot); UpdateReadyButton(snapshot); RenderParticipants(snapshot); + RefreshSongDropdowns(snapshot); } private IEnumerator UpdateRemainTime(ArenaRoomSnapshot snapshot) @@ -760,7 +799,7 @@ public class roomDetails : MonoBehaviour && string.Equals(senderSteamId, localSteamId, StringComparison.Ordinal); Color bubbleColor = ResolveMessageBubbleColor(isSelf); string displayName = ResolveMessageDisplayName(message, isSelf); - string title = ResolveMessageTitle(); + string title = ResolveMessageTitle(message); GameObject instance = Instantiate(playerMessagePrefab, messageParent, false); playerMessagePrefab controller = instance.GetComponent(); @@ -1026,9 +1065,11 @@ public class roomDetails : MonoBehaviour return GameServer.Client.NetworkManager.ResolveDisplayName(message != null ? message.display_name : string.Empty, messageSteamId, false); } - private static string ResolveMessageTitle() + private static string ResolveMessageTitle(ArenaRoomChatMessage message) { - return string.Empty; + return message != null && !string.IsNullOrWhiteSpace(message.player_title) + ? message.player_title + : string.Empty; } private static string GetMessageSenderSteamId(ArenaRoomChatMessage message) @@ -1387,6 +1428,405 @@ public class roomDetails : MonoBehaviour || string.Equals(snapshot.status, "PLAYING", StringComparison.OrdinalIgnoreCase); } + private void EnsureSongDropdownsReady() + { + if (songDropdown == null && difficultyDropdown == null) + { + return; + } + + SongDataLibrary library = SongDataLibrary.Instance; + if (library != null && library.IsLoaded) + { + RefreshSongDropdowns(_service != null ? _service.CurrentRoom : null); + return; + } + + if (_songLibraryWaitRoutine == null) + { + _songLibraryWaitRoutine = StartCoroutine(WaitForSongLibraryAndRefresh()); + } + } + + private IEnumerator WaitForSongLibraryAndRefresh() + { + float timeoutAt = Time.realtimeSinceStartup + 8f; + while (Time.realtimeSinceStartup < timeoutAt) + { + SongDataLibrary library = SongDataLibrary.Instance; + if (library != null && library.IsLoaded) + { + _songLibraryWaitRoutine = null; + RefreshSongDropdowns(_service != null ? _service.CurrentRoom : null); + yield break; + } + + yield return null; + } + + _songLibraryWaitRoutine = null; + Debug.LogWarning("[roomDetails] SongDataLibrary was not ready; song dropdowns were left empty."); + } + + private void RefreshSongDropdowns(ArenaRoomSnapshot snapshot) + { + if (songDropdown == null && difficultyDropdown == null) + { + return; + } + + SongDataLibrary library = SongDataLibrary.Instance; + if (library == null || !library.IsLoaded) + { + EnsureSongDropdownsReady(); + UpdateSongDropdownInteractable(snapshot); + return; + } + + RebuildSelectableSongs(library); + SongData selectedSong = ResolveSnapshotSong(snapshot); + if (selectedSong == null && _selectableSongs.Count > 0) + { + selectedSong = _selectableSongs[0]; + } + + int selectedDifficulty = ConvertDifficultyKeyToId(snapshot != null ? snapshot.difficulty : null); + if (selectedSong != null) + { + RebuildSelectableDifficulties(selectedSong); + if (!_selectableDifficulties.Contains(selectedDifficulty)) + { + selectedDifficulty = _selectableDifficulties.Count > 0 ? _selectableDifficulties[0] : selectedDifficulty; + } + } + else + { + _selectableDifficulties.Clear(); + } + + _suppressSongDropdownEvents = true; + try + { + PopulateSongDropdown(selectedSong); + PopulateDifficultyDropdown(selectedSong, selectedDifficulty); + } + finally + { + _suppressSongDropdownEvents = false; + } + + UpdateSongDropdownInteractable(snapshot); + } + + private void RebuildSelectableSongs(SongDataLibrary library) + { + _selectableSongs.Clear(); + + List songs = library != null ? library.GetAllSongs() : null; + if (songs == null) + { + return; + } + + songs.Sort((left, right) => + { + int idCompare = (left != null ? left.songID : int.MaxValue).CompareTo(right != null ? right.songID : int.MaxValue); + if (idCompare != 0) + { + return idCompare; + } + + return string.Compare(left != null ? left.songName : string.Empty, + right != null ? right.songName : string.Empty, + StringComparison.CurrentCulture); + }); + + foreach (SongData song in songs) + { + if (song != null && HasPlayableDifficulty(song)) + { + _selectableSongs.Add(song); + } + } + } + + private SongData ResolveSnapshotSong(ArenaRoomSnapshot snapshot) + { + if (snapshot != null && int.TryParse(snapshot.song_id, out int songId)) + { + for (int i = 0; i < _selectableSongs.Count; i++) + { + SongData song = _selectableSongs[i]; + if (song != null && song.songID == songId) + { + return song; + } + } + } + + return null; + } + + private void RebuildSelectableDifficulties(SongData song) + { + _selectableDifficulties.Clear(); + if (song == null || song.chartFiles == null) + { + return; + } + + foreach (ChartFileEntry entry in song.chartFiles) + { + if (entry == null || entry.chartFile == null || _selectableDifficulties.Contains(entry.difficulty)) + { + continue; + } + + _selectableDifficulties.Add(entry.difficulty); + } + + _selectableDifficulties.Sort(); + } + + private void PopulateSongDropdown(SongData selectedSong) + { + if (songDropdown == null) + { + return; + } + + songDropdown.ClearOptions(); + List options = new List(); + for (int i = 0; i < _selectableSongs.Count; i++) + { + SongData song = _selectableSongs[i]; + options.Add(song != null && !string.IsNullOrWhiteSpace(song.songName) ? song.songName : $"Song {song?.songID ?? 0}"); + } + + songDropdown.AddOptions(options); + int selectedIndex = selectedSong != null ? _selectableSongs.IndexOf(selectedSong) : -1; + songDropdown.value = Mathf.Clamp(selectedIndex, 0, Mathf.Max(0, _selectableSongs.Count - 1)); + songDropdown.RefreshShownValue(); + } + + private void PopulateDifficultyDropdown(SongData selectedSong, int selectedDifficulty) + { + if (difficultyDropdown == null) + { + return; + } + + difficultyDropdown.ClearOptions(); + List options = new List(); + for (int i = 0; i < _selectableDifficulties.Count; i++) + { + options.Add(FormatDifficultyOption(selectedSong, _selectableDifficulties[i])); + } + + difficultyDropdown.AddOptions(options); + int selectedIndex = _selectableDifficulties.IndexOf(selectedDifficulty); + difficultyDropdown.value = Mathf.Clamp(selectedIndex, 0, Mathf.Max(0, _selectableDifficulties.Count - 1)); + difficultyDropdown.RefreshShownValue(); + } + + private void UpdateSongDropdownInteractable(ArenaRoomSnapshot snapshot) + { + string localSteamId = NetworkManager.Instance != null ? NetworkManager.Instance.SteamId : string.Empty; + bool canChange = !_isChangingRoomSong + && snapshot != null + && IsLocalHost(snapshot, localSteamId) + && !IsRoomStarted(snapshot) + && _selectableSongs.Count > 0; + + if (songDropdown != null) + { + songDropdown.interactable = canChange; + } + + if (difficultyDropdown != null) + { + difficultyDropdown.interactable = canChange && _selectableDifficulties.Count > 0; + } + } + + private void OnSongDropdownChanged(int index) + { + if (_suppressSongDropdownEvents || index < 0 || index >= _selectableSongs.Count) + { + return; + } + + SongData song = _selectableSongs[index]; + int currentDifficulty = GetSelectedDifficultyId(); + RebuildSelectableDifficulties(song); + if (!_selectableDifficulties.Contains(currentDifficulty)) + { + currentDifficulty = _selectableDifficulties.Count > 0 ? _selectableDifficulties[0] : 2; + } + + _suppressSongDropdownEvents = true; + try + { + PopulateDifficultyDropdown(song, currentDifficulty); + } + finally + { + _suppressSongDropdownEvents = false; + } + + RequestChangeRoomSong(song, currentDifficulty); + } + + private void OnDifficultyDropdownChanged(int index) + { + if (_suppressSongDropdownEvents || index < 0 || index >= _selectableDifficulties.Count) + { + return; + } + + SongData song = GetSelectedSong(); + RequestChangeRoomSong(song, _selectableDifficulties[index]); + } + + private async void RequestChangeRoomSong(SongData song, int difficultyId) + { + if (_service == null || song == null || _isChangingRoomSong) + { + return; + } + + ArenaRoomSnapshot snapshot = _service.CurrentRoom; + string localSteamId = NetworkManager.Instance != null ? NetworkManager.Instance.SteamId : string.Empty; + if (!IsLocalHost(snapshot, localSteamId) || IsRoomStarted(snapshot)) + { + RefreshSongDropdowns(snapshot); + return; + } + + string difficultyKey = ConvertDifficultyIdToKey(difficultyId); + if (snapshot != null + && string.Equals(snapshot.song_id, song.songID.ToString(CultureInfo.InvariantCulture), StringComparison.Ordinal) + && string.Equals((snapshot.difficulty ?? string.Empty).Trim(), difficultyKey, StringComparison.OrdinalIgnoreCase)) + { + return; + } + + _isChangingRoomSong = true; + UpdateSongDropdownInteractable(snapshot); + try + { + await _service.ChangeRoomSong( + song.songID.ToString(CultureInfo.InvariantCulture), + song.songName, + difficultyKey); + } + catch (Exception ex) + { + Debug.LogWarning($"[roomDetails] Change room song failed: {ex.Message}"); + RefreshSongDropdowns(_service.CurrentRoom); + } + finally + { + _isChangingRoomSong = false; + UpdateSongDropdownInteractable(_service.CurrentRoom); + } + } + + private SongData GetSelectedSong() + { + if (songDropdown == null) + { + return ResolveSnapshotSong(_service != null ? _service.CurrentRoom : null); + } + + int index = songDropdown.value; + return index >= 0 && index < _selectableSongs.Count ? _selectableSongs[index] : null; + } + + private int GetSelectedDifficultyId() + { + if (difficultyDropdown != null) + { + int index = difficultyDropdown.value; + if (index >= 0 && index < _selectableDifficulties.Count) + { + return _selectableDifficulties[index]; + } + } + + return ConvertDifficultyKeyToId(_service != null && _service.CurrentRoom != null ? _service.CurrentRoom.difficulty : null); + } + + private static bool HasPlayableDifficulty(SongData song) + { + if (song == null || song.chartFiles == null) + { + return false; + } + + foreach (ChartFileEntry entry in song.chartFiles) + { + if (entry != null && entry.chartFile != null) + { + return true; + } + } + + return false; + } + + private static string FormatDifficultyOption(SongData song, int difficultyId) + { + string shortName = FormatDifficulty(ConvertDifficultyIdToKey(difficultyId)); + ChartFileEntry entry = song != null && song.chartFiles != null + ? song.chartFiles.Find(item => item != null && item.difficulty == difficultyId) + : null; + + if (entry != null && entry.difficultyLEVEL > 0f) + { + return $"{shortName} Lv.{entry.difficultyLEVEL:0.#}"; + } + + return shortName; + } + + private static int ConvertDifficultyKeyToId(string difficultyKey) + { + if (string.IsNullOrWhiteSpace(difficultyKey)) + { + return 2; + } + + switch (difficultyKey.Trim().ToLowerInvariant()) + { + case "ez": + return 0; + case "hd": + return 1; + case "im": + return 3; + case "in": + default: + return 2; + } + } + + private static string ConvertDifficultyIdToKey(int difficultyId) + { + switch (difficultyId) + { + case 0: + return "ez"; + case 1: + return "hd"; + case 3: + return "im"; + case 2: + default: + return "in"; + } + } + private static void SetButtonText(Button button, string text) { if (button == null) diff --git a/Assets/scripts/roomSystem/roomDetails.prefab b/Assets/scripts/roomSystem/roomDetails.prefab index 3e488775..8e5e75ee 100644 --- a/Assets/scripts/roomSystem/roomDetails.prefab +++ b/Assets/scripts/roomSystem/roomDetails.prefab @@ -173,6 +173,93 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: "\u72B6\u6001" +--- !u!1 &445521442099163655 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1214060876396913699} + - component: {fileID: 4139889435946756449} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1214060876396913699 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445521442099163655} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 159189870340381649} + - {fileID: 2492352822195222743} + - {fileID: 3517007741784431418} + m_Father: {fileID: 4413986565390861762} + 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: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4139889435946756449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 445521442099163655} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5010637365417407313} + toggleTransition: 1 + graphic: {fileID: 7510347621358761294} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 --- !u!1 &492135589637148651 GameObject: m_ObjectHideFlags: 0 @@ -230,11 +317,13 @@ MonoBehaviour: showRoomRankingList: {fileID: 4923828658041065066} thisSongName: {fileID: 8824319613935926265} thisSongDifficulty: {fileID: 4666872482695348399} + songDropdown: {fileID: 7277134562246684659} + difficultyDropdown: {fileID: 1884887028325486384} roommatePrefab: {fileID: 7349019350252785172, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} roommateParent: {fileID: 6704157697088684691} btmSprites: - - {fileID: 21300000, guid: 28c51f93b6260224c867f45f411a0e85, type: 3} - - {fileID: 21300000, guid: 60cfd84ae231a4943b3f0f6cf0dcf409, type: 3} + - {fileID: 21300000, guid: 9e6a75c290497c4469b9b86d5eab72a1, type: 3} + - {fileID: 21300000, guid: 7f3e2cfd199d3a844b15751f1eddf15b, type: 3} playerMessagePrefab: {fileID: 3794995701616312333, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} selfMessagePrefab: {fileID: 3794995701616312333, guid: e71a6cb49c3a28648bdd402191406600, type: 3} systemMessagePrefab: {fileID: 1769058375999623149, guid: 6ad36126be99a574285929280ea8fac7, type: 3} @@ -243,9 +332,96 @@ MonoBehaviour: messageDisplayWindow: 10 messageTypeColors: - {r: 1, g: 1, b: 1, a: 1} - - {r: 0.23292516, g: 0.7924528, b: 0.22801706, a: 1} + - {r: 1, g: 1, b: 1, a: 1} playerMessageInputField: {fileID: 5974991771263920994} sendMessageButton: {fileID: 5413626211025624480} +--- !u!1 &705766841792556921 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8644580424851236019} + - component: {fileID: 4399375500375304394} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8644580424851236019 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705766841792556921} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8476379749555202942} + - {fileID: 910148046710369501} + - {fileID: 2733387029192934956} + m_Father: {fileID: 8930891077643360293} + 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: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4399375500375304394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705766841792556921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 4830055108728031234} + toggleTransition: 1 + graphic: {fileID: 296724167676485716} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 --- !u!1 &807090630666390720 GameObject: m_ObjectHideFlags: 0 @@ -282,7 +458,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 7.28, y: 0} + m_AnchoredPosition: {x: 7.2799835, y: 0} m_SizeDelta: {x: 5.1983, y: -17} m_Pivot: {x: 1, y: 1} --- !u!222 &2712201512905160735 @@ -406,8 +582,8 @@ RectTransform: 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_AnchoredPosition: {x: -6.5815, y: 2.2262} + m_SizeDelta: {x: -4.6464, y: -4.4524} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7653192694106776303 CanvasRenderer: @@ -430,7 +606,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_Color: {r: 0.63529414, g: 0.3529412, b: 0.16862746, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -438,7 +614,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 @@ -485,8 +661,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -2.3700104, y: 0.001159668} - m_SizeDelta: {x: -15.26, y: 0.001} + m_AnchoredPosition: {x: -0.42897034, y: 0.001159668} + m_SizeDelta: {x: -11.378, y: 0.001} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4309875876682544047 CanvasRenderer: @@ -509,7 +685,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_Color: {r: 0.764151, g: 0.764151, b: 0.764151, a: 0.79607844} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -517,8 +693,8 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} - m_FontSize: 15 + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 1 @@ -639,6 +815,85 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] +--- !u!1 &1199313210295416937 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4213181553189047047} + - component: {fileID: 7644083312914908254} + - component: {fileID: 1736463323235131334} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4213181553189047047 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199313210295416937} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5325206549555437037} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5000153, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7644083312914908254 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199313210295416937} + m_CullTransparentMesh: 1 +--- !u!114 &1736463323235131334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1199313210295416937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A --- !u!1 &1226732915180594430 GameObject: m_ObjectHideFlags: 0 @@ -890,8 +1145,8 @@ RectTransform: 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: 166.662, y: 0} - m_SizeDelta: {x: 50.52, y: 30} + m_AnchoredPosition: {x: 256.3, y: 0} + m_SizeDelta: {x: 50.52, y: 25} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &670135778866160938 CanvasRenderer: @@ -921,7 +1176,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7f3b1220317607e44bbb8f0e1998044a, type: 3} + m_Sprite: {fileID: 0} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -1009,8 +1264,8 @@ RectTransform: 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_AnchoredPosition: {x: -4.2859955, y: 2.2262} + m_SizeDelta: {x: -8.5719, y: -4.4524} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7111428659777248302 CanvasRenderer: @@ -1033,7 +1288,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_Color: {r: 0.09803922, g: 0.32941177, b: 0.6, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -1041,7 +1296,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 @@ -1054,6 +1309,78 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: "\u67E5\u770B\u623F\u95F4\u6392\u884C\u699C" +--- !u!1 &1649355531044607995 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8930891077643360293} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8930891077643360293 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649355531044607995} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8644580424851236019} + m_Father: {fileID: 24291565141532610} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1701901545442196984 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4487962528315307618} + 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 &4487962528315307618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1701901545442196984} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6526439306642075822} + m_Father: {fileID: 7500107623684834655} + 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 &1736157110148093444 GameObject: m_ObjectHideFlags: 0 @@ -1092,8 +1419,8 @@ RectTransform: 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: -25.368, y: -262.246} - m_SizeDelta: {x: 283.214, y: 30} + m_AnchoredPosition: {x: -23.0791, y: -292.8} + m_SizeDelta: {x: 459.5818, y: 24.3} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6865826381067397164 CanvasRenderer: @@ -1123,7 +1450,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 7f3b1220317607e44bbb8f0e1998044a, type: 3} + m_Sprite: {fileID: 21300000, guid: 169cc5cb1db81534eba6683ff8cb9ff6, type: 3} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -1201,6 +1528,132 @@ MonoBehaviour: m_CaretWidth: 1 m_ReadOnly: 0 m_ShouldActivateOnSelect: 1 +--- !u!1 &2296483727560881613 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7500107623684834655} + - component: {fileID: 1487830227966271409} + - component: {fileID: 7329022357664091924} + - component: {fileID: 6432449452790338364} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7500107623684834655 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296483727560881613} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4487962528315307618} + m_Father: {fileID: 8744567256855844653} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!222 &1487830227966271409 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296483727560881613} + m_CullTransparentMesh: 1 +--- !u!114 &7329022357664091924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296483727560881613} + 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 &6432449452790338364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2296483727560881613} + 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: 2526321898878337518} + m_HandleRect: {fileID: 6526439306642075822} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &2791740245023855073 GameObject: m_ObjectHideFlags: 0 @@ -1317,6 +1770,160 @@ RectTransform: m_AnchoredPosition: {x: -31.44, y: -89.6} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2850895145194941050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8476379749555202942} + - component: {fileID: 6154704467442970359} + - component: {fileID: 4830055108728031234} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8476379749555202942 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2850895145194941050} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8644580424851236019} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 71, y: 0} + m_SizeDelta: {x: 142, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6154704467442970359 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2850895145194941050} + m_CullTransparentMesh: 1 +--- !u!114 &4830055108728031234 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2850895145194941050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ee325a8217db5db47946e9176cacef04, 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 &2861603201615777883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2733387029192934956} + - component: {fileID: 5202062902703460080} + - component: {fileID: 2617769994941450416} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2733387029192934956 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2861603201615777883} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8644580424851236019} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5202062902703460080 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2861603201615777883} + m_CullTransparentMesh: 1 +--- !u!114 &2617769994941450416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2861603201615777883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A --- !u!1 &3015479751907949277 GameObject: m_ObjectHideFlags: 0 @@ -1353,6 +1960,114 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3097441035700922410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8744567256855844653} + - component: {fileID: 3153087729012724607} + - component: {fileID: 6848508860245471413} + - component: {fileID: 4311838811645345571} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8744567256855844653 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3097441035700922410} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 24291565141532610} + - {fileID: 7500107623684834655} + m_Father: {fileID: 5325206549555437037} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3153087729012724607 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3097441035700922410} + m_CullTransparentMesh: 1 +--- !u!114 &6848508860245471413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3097441035700922410} + 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: ee325a8217db5db47946e9176cacef04, 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!114 &4311838811645345571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3097441035700922410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 8930891077643360293} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.4 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 24291565141532610} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 6432449452790338364} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &3259052119220855355 GameObject: m_ObjectHideFlags: 0 @@ -1447,6 +2162,160 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 0 +--- !u!1 &3289893609453576425 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3241848764404789333} + - component: {fileID: 2072021808380100098} + - component: {fileID: 685326439129869822} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3241848764404789333 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3289893609453576425} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4172087755860988775} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2072021808380100098 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3289893609453576425} + m_CullTransparentMesh: 1 +--- !u!114 &685326439129869822 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3289893609453576425} + 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 &3405893537440925954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1804447396456670190} + - component: {fileID: 5743924412205775676} + - component: {fileID: 3640100148842486945} + m_Layer: 5 + m_Name: dropdowns + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1804447396456670190 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3405893537440925954} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000299, y: 1.0000299, z: 1.0000299} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5325206549555437037} + - {fileID: 7126528590048656140} + m_Father: {fileID: 6190543371398280789} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 932.239, y: -40.595} + m_SizeDelta: {x: 501.88, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &5743924412205775676 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3405893537440925954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &3640100148842486945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3405893537440925954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 --- !u!1 &3435916124630791126 GameObject: m_ObjectHideFlags: 0 @@ -1522,6 +2391,85 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3516885929100179393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6796547158130808788} + - component: {fileID: 3492104135589081093} + - component: {fileID: 6275110278876490700} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6796547158130808788 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3516885929100179393} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7126528590048656140} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3492104135589081093 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3516885929100179393} + m_CullTransparentMesh: 1 +--- !u!114 &6275110278876490700 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3516885929100179393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A --- !u!1 &3548294156540568102 GameObject: m_ObjectHideFlags: 0 @@ -1710,7 +2658,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1042.9595, y: -67.999176} + m_AnchoredPosition: {x: 1264, y: -108} m_SizeDelta: {x: 419.982, y: 58} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1498934785237147747 @@ -1813,7 +2761,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + 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 @@ -1821,8 +2769,8 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} - m_FontSize: 15 + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 1 @@ -1834,6 +2782,81 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: +--- !u!1 &4121305451859131330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8557455099647770253} + - component: {fileID: 6111808654145425253} + - component: {fileID: 3628484547528663016} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8557455099647770253 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121305451859131330} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7126528590048656140} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 19, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6111808654145425253 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121305451859131330} + m_CullTransparentMesh: 1 +--- !u!114 &3628484547528663016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121305451859131330} + 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: 381cbb916198e1f4bb089f0f64be9e96, 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!1 &4149635848007651665 GameObject: m_ObjectHideFlags: 0 @@ -1873,7 +2896,7 @@ RectTransform: 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: 330.66, y: 68.97} + m_AnchoredPosition: {x: 330.66, y: 62.1} m_SizeDelta: {x: 752.257, y: 50.001} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8550321399241669663 @@ -2010,6 +3033,85 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] +--- !u!1 &4622790116499114476 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1452666424584207216} + - component: {fileID: 6754927898715468752} + - component: {fileID: 3276210173091459310} + m_Layer: 5 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1452666424584207216 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4622790116499114476} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5325206549555437037} + 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: -83, y: 25.29} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6754927898715468752 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4622790116499114476} + m_CullTransparentMesh: 1 +--- !u!114 &3276210173091459310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4622790116499114476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.27450982, g: 0.34901962, b: 0.54901963, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5207\u6362\u6B4C\u66F2" --- !u!1 &4637582454986528458 GameObject: m_ObjectHideFlags: 0 @@ -2077,8 +3179,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 60cfd84ae231a4943b3f0f6cf0dcf409, type: 3} - m_Type: 1 + m_Sprite: {fileID: -566881566719626471, guid: aee8077d170e84b44afd422763951685, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -2168,9 +3270,253 @@ RectTransform: 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: -504.3711, y: 259.5} + m_AnchoredPosition: {x: -614.96, y: 259.5} m_SizeDelta: {x: 168.597, y: 100} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &4864157005586624151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 910148046710369501} + - component: {fileID: 5567311410004663378} + - component: {fileID: 296724167676485716} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &910148046710369501 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4864157005586624151} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8644580424851236019} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 71, y: 0} + m_SizeDelta: {x: 142, y: 27} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5567311410004663378 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4864157005586624151} + m_CullTransparentMesh: 1 +--- !u!114 &296724167676485716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4864157005586624151} + 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: eb2aa822805d0794ba5d9d7841717145, 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 &5150585218757930095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2492352822195222743} + - component: {fileID: 6837943807612787918} + - component: {fileID: 7510347621358761294} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2492352822195222743 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150585218757930095} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1214060876396913699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 71, y: 0} + m_SizeDelta: {x: 142, y: 27} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6837943807612787918 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150585218757930095} + m_CullTransparentMesh: 1 +--- !u!114 &7510347621358761294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5150585218757930095} + 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: eb2aa822805d0794ba5d9d7841717145, 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 &5278234410432749753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2814572653335054269} + - component: {fileID: 3884477560396698222} + - component: {fileID: 8704948073825824236} + - component: {fileID: 8537422202498732097} + m_Layer: 0 + m_Name: space (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2814572653335054269 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5278234410432749753} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6190543371398280789} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 630.299, y: -40.595013} + m_SizeDelta: {x: 102, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3884477560396698222 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5278234410432749753} + m_CullTransparentMesh: 1 +--- !u!114 &8704948073825824236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5278234410432749753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 8b8373b0af11dca46b89be60dbe469f8, type: 3} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 6 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ' ' +--- !u!114 &8537422202498732097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5278234410432749753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 --- !u!1 &5363395534912300452 GameObject: m_ObjectHideFlags: 0 @@ -2207,6 +3553,211 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5392219663749273423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3517007741784431418} + - component: {fileID: 2554214566784451347} + - component: {fileID: 6487130676949856075} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3517007741784431418 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5392219663749273423} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1214060876396913699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2554214566784451347 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5392219663749273423} + m_CullTransparentMesh: 1 +--- !u!114 &6487130676949856075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5392219663749273423} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!1 &5423576669272629278 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4407636298305481157} + - component: {fileID: 4278468105314548976} + - component: {fileID: 3845215219499509297} + - component: {fileID: 3569960293767694852} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4407636298305481157 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5423576669272629278} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4172087755860988775} + m_Father: {fileID: 2366806432485196229} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!222 &4278468105314548976 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5423576669272629278} + m_CullTransparentMesh: 1 +--- !u!114 &3845215219499509297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5423576669272629278} + 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 &3569960293767694852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5423576669272629278} + 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: 685326439129869822} + m_HandleRect: {fileID: 3241848764404789333} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &5537812014317269358 GameObject: m_ObjectHideFlags: 0 @@ -2246,8 +3797,8 @@ RectTransform: 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: 479.1093, y: -18.199} - m_SizeDelta: {x: 420.2086, y: 494.397} + m_AnchoredPosition: {x: 409.1, y: -46.65438} + m_SizeDelta: {x: 505.7383, y: 551.3077} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6546604333839282624 CanvasRenderer: @@ -2270,15 +3821,15 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_Color: {r: 1, g: 1, b: 1, a: 0.78431374} 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_Sprite: {fileID: 5708165431578525411, guid: 02411b343df84d7438b69f61c0e83428, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -2317,6 +3868,171 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] +--- !u!1 &5546113550133890680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6526439306642075822} + - component: {fileID: 8794977588832116083} + - component: {fileID: 2526321898878337518} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6526439306642075822 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546113550133890680} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4487962528315307618} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8794977588832116083 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546113550133890680} + m_CullTransparentMesh: 1 +--- !u!114 &2526321898878337518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5546113550133890680} + 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 &5710490527464419894 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 170571976080110815} + - component: {fileID: 5192166405420167843} + - component: {fileID: 5515527844346888408} + - component: {fileID: 3285451913749603873} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &170571976080110815 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5710490527464419894} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4413986565390861762} + m_Father: {fileID: 2366806432485196229} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &5192166405420167843 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5710490527464419894} + m_CullTransparentMesh: 1 +--- !u!114 &5515527844346888408 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5710490527464419894} + 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 &3285451913749603873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5710490527464419894} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 --- !u!1 &5826012950031105086 GameObject: m_ObjectHideFlags: 0 @@ -2396,6 +4112,132 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!1 &5839418336376428208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4413986565390861762} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4413986565390861762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5839418336376428208} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1214060876396913699} + m_Father: {fileID: 170571976080110815} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &5839832002867141768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 24291565141532610} + - component: {fileID: 3769197394553083346} + - component: {fileID: 6676035757738507775} + - component: {fileID: 4921012245199092558} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &24291565141532610 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5839832002867141768} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8930891077643360293} + m_Father: {fileID: 8744567256855844653} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &3769197394553083346 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5839832002867141768} + m_CullTransparentMesh: 1 +--- !u!114 &6676035757738507775 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5839832002867141768} + 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 &4921012245199092558 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5839832002867141768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 --- !u!1 &6108814038748154228 GameObject: m_ObjectHideFlags: 0 @@ -2569,6 +4411,42 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 0 +--- !u!1 &6223132806212171396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4172087755860988775} + 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 &4172087755860988775 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6223132806212171396} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3241848764404789333} + m_Father: {fileID: 4407636298305481157} + 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 &6259204671934012435 GameObject: m_ObjectHideFlags: 0 @@ -2639,7 +4517,7 @@ RectTransform: 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: 16.6} + m_AnchoredPosition: {x: 0, y: 3} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8170460580255755333 @@ -2895,7 +4773,7 @@ MonoBehaviour: m_HandleRect: {fileID: 2464122768890705763} m_Direction: 0 m_Value: 0 - m_Size: 0.99999976 + m_Size: 0.99999994 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -3109,11 +4987,13 @@ RectTransform: - {fileID: 6976990909602204427} - {fileID: 6891992455635066185} - {fileID: 6842029904542148234} + - {fileID: 2814572653335054269} + - {fileID: 1804447396456670190} m_Father: {fileID: 2346837952888000687} 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: -593.4, y: 332} + m_AnchoredPosition: {x: -698, y: 332} m_SizeDelta: {x: 0, y: 81.19} m_Pivot: {x: 0, y: 0.5} --- !u!114 &8823090231288071817 @@ -3156,6 +5036,81 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 0 +--- !u!1 &6904178880490083001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 159189870340381649} + - component: {fileID: 2513490798442455087} + - component: {fileID: 5010637365417407313} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &159189870340381649 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6904178880490083001} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1214060876396913699} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 71, y: 0} + m_SizeDelta: {x: 142, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2513490798442455087 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6904178880490083001} + m_CullTransparentMesh: 1 +--- !u!114 &5010637365417407313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6904178880490083001} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ee325a8217db5db47946e9176cacef04, 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 &7060739879890480496 GameObject: m_ObjectHideFlags: 0 @@ -3325,6 +5280,145 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 +--- !u!1 &7309856422440728038 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5325206549555437037} + - component: {fileID: 7949568382623765178} + - component: {fileID: 3861286029667832517} + - component: {fileID: 7277134562246684659} + m_Layer: 5 + m_Name: songDropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5325206549555437037 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7309856422440728038} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4213181553189047047} + - {fileID: 943012201400822866} + - {fileID: 8744567256855844653} + - {fileID: 1452666424584207216} + m_Father: {fileID: 1804447396456670190} + 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: 331.88, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7949568382623765178 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7309856422440728038} + m_CullTransparentMesh: 1 +--- !u!114 &3861286029667832517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7309856422440728038} + 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: ee325a8217db5db47946e9176cacef04, 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!114 &7277134562246684659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7309856422440728038} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d0b652f32a2cc243917e4028fa0f046, 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: 3861286029667832517} + m_Template: {fileID: 8744567256855844653} + m_CaptionText: {fileID: 1736463323235131334} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 2617769994941450416} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Option A + m_Image: {fileID: 0} + - m_Text: Option B + m_Image: {fileID: 0} + - m_Text: Option C + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 --- !u!1 &7358503608205940462 GameObject: m_ObjectHideFlags: 0 @@ -3361,7 +5455,7 @@ RectTransform: 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: 224.64647, y: -593.2999} + m_AnchoredPosition: {x: 626.01, y: -593.2999} m_SizeDelta: {x: 204.9429, y: 50.001} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7594281517659556329 @@ -3392,8 +5486,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 040be0e474e09894ca320b08d9462cc8, type: 3} - m_Type: 1 + m_Sprite: {fileID: -2689630615245801869, guid: 2a46b5f36d286d447bd74d1db9a72cd7, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -3446,6 +5540,114 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &7527033683230608141 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2366806432485196229} + - component: {fileID: 6341052218340068532} + - component: {fileID: 1499532149809282622} + - component: {fileID: 3959860715314676561} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2366806432485196229 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7527033683230608141} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 170571976080110815} + - {fileID: 4407636298305481157} + m_Father: {fileID: 7126528590048656140} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &6341052218340068532 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7527033683230608141} + m_CullTransparentMesh: 1 +--- !u!114 &1499532149809282622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7527033683230608141} + 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: ee325a8217db5db47946e9176cacef04, 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!114 &3959860715314676561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7527033683230608141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 4413986565390861762} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.4 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 170571976080110815} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 3569960293767694852} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &7564310304539249267 GameObject: m_ObjectHideFlags: 0 @@ -3628,10 +5830,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 3942730564026256043} 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_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -80.1, y: 0} + m_SizeDelta: {x: 105.8097, y: 44} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5319089643842658972 CanvasRenderer: @@ -3654,21 +5856,21 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_Color: {r: 0.14117648, g: 0.34117648, b: 0.7764706, a: 1} + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3} m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 2 m_MaxSize: 40 - m_Alignment: 4 + m_Alignment: 5 m_AlignByGeometry: 0 m_RichText: 1 m_HorizontalOverflow: 0 @@ -3711,6 +5913,145 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8623091032809649037 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7126528590048656140} + - component: {fileID: 1078963268214919401} + - component: {fileID: 7028602312321744950} + - component: {fileID: 1884887028325486384} + m_Layer: 5 + m_Name: difficultyDropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7126528590048656140 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8623091032809649037} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6796547158130808788} + - {fileID: 8557455099647770253} + - {fileID: 2366806432485196229} + - {fileID: 8410380725690586304} + m_Father: {fileID: 1804447396456670190} + 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: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1078963268214919401 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8623091032809649037} + m_CullTransparentMesh: 1 +--- !u!114 &7028602312321744950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8623091032809649037} + 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: ee325a8217db5db47946e9176cacef04, 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!114 &1884887028325486384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8623091032809649037} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d0b652f32a2cc243917e4028fa0f046, 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: 7028602312321744950} + m_Template: {fileID: 2366806432485196229} + m_CaptionText: {fileID: 6275110278876490700} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 6487130676949856075} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Option A + m_Image: {fileID: 0} + - m_Text: Option B + m_Image: {fileID: 0} + - m_Text: Option C + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 --- !u!1 &8653994005906138487 GameObject: m_ObjectHideFlags: 0 @@ -3915,6 +6256,160 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!1 &8741613096623121291 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 943012201400822866} + - component: {fileID: 2983101318333523844} + - component: {fileID: 3992859559253589598} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &943012201400822866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8741613096623121291} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5325206549555437037} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 19, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2983101318333523844 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8741613096623121291} + m_CullTransparentMesh: 1 +--- !u!114 &3992859559253589598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8741613096623121291} + 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: 381cbb916198e1f4bb089f0f64be9e96, 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!1 &8770130537266072027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8410380725690586304} + - component: {fileID: 7776634469097929071} + - component: {fileID: 3438554434371866729} + m_Layer: 5 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8410380725690586304 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8770130537266072027} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7126528590048656140} + 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: 25.29} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7776634469097929071 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8770130537266072027} + m_CullTransparentMesh: 1 +--- !u!114 &3438554434371866729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8770130537266072027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.27450982, g: 0.34901962, b: 0.54901963, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u96BE\u5EA6" --- !u!1 &8890133922829801527 GameObject: m_ObjectHideFlags: 0 @@ -3977,14 +6472,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.78431374} + 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: 7f3b1220317607e44bbb8f0e1998044a, type: 3} + m_Sprite: {fileID: 8242753404081519931, guid: 8cbf1f64f7c103f48a05ce971f6c62f0, type: 3} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -3993,7 +6488,7 @@ MonoBehaviour: m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 + m_PixelsPerUnitMultiplier: 0.5 --- !u!1 &9018838466938608047 GameObject: m_ObjectHideFlags: 0 @@ -4184,8 +6679,8 @@ RectTransform: 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: 1023, y: 28.3} - m_SizeDelta: {x: 160, y: 50.001} + m_AnchoredPosition: {x: 1319.7, y: 95.9} + m_SizeDelta: {x: 55, y: 55} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4926117729578204926 CanvasRenderer: @@ -4215,8 +6710,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 28c51f93b6260224c867f45f411a0e85, type: 3} - m_Type: 1 + m_Sprite: {fileID: 21300000, guid: 7c8b22305cba474458e89070ad4781b8, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -4347,7 +6842,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6249172551117239467, guid: 6ad36126be99a574285929280ea8fac7, type: 3} propertyPath: m_AnchoredPosition.y - value: -100.5 + value: -120.500015 objectReference: {fileID: 0} - target: {fileID: 6249172551117239467, guid: 6ad36126be99a574285929280ea8fac7, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -4391,6 +6886,22 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 6704157697088684691} m_Modifications: + - target: {fileID: 5204232936996661830, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5204232936996661830, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5204232936996661830, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5204232936996661830, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7349019350252785172, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} propertyPath: m_Name value: roomPrefab @@ -4399,6 +6910,10 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 7782155306532619577, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8082934342913687724, guid: ecfff3d5dccb90846a8cbde12dbb8b70, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -4525,17 +7040,21 @@ PrefabInstance: propertyPath: m_AnchorMin.y value: 1 objectReference: {fileID: 0} + - target: {fileID: 752414209697581781, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} + propertyPath: m_SizeDelta.x + value: 492.5201 + objectReference: {fileID: 0} - target: {fileID: 752414209697581781, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} - target: {fileID: 752414209697581781, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_AnchoredPosition.x - value: 128 + value: 246.26001 objectReference: {fileID: 0} - target: {fileID: 752414209697581781, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_AnchoredPosition.y - value: -62.5 + value: -72.5 objectReference: {fileID: 0} - target: {fileID: 3794995701616312333, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_Name @@ -4559,11 +7078,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4696069065802349809, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_AnchoredPosition.y - value: 62.500004 + value: 72.5 objectReference: {fileID: 0} - target: {fileID: 4706209777741000001, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_PreferredHeight - value: 62.500004 + value: 72.5 + objectReference: {fileID: 0} + - target: {fileID: 4855724856644423190, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} + propertyPath: m_PreferredWidth + value: 810 objectReference: {fileID: 0} - target: {fileID: 5207749702406868266, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_AnchorMax.y @@ -4599,7 +7122,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5792101653971418633, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_SizeDelta.x - value: 683 + value: 830 objectReference: {fileID: 0} - target: {fileID: 5792101653971418633, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_SizeDelta.y @@ -4613,6 +7136,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 15 objectReference: {fileID: 0} + - target: {fileID: 5951147724285136445, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} + propertyPath: m_Text + value: 123123123123123123123123123123123123123123123123123123123123123123123123123123 + objectReference: {fileID: 0} - target: {fileID: 7157313819124811504, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -4643,7 +7170,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7157313819124811504, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_SizeDelta.y - value: 62.500004 + value: 72.5 objectReference: {fileID: 0} - target: {fileID: 7157313819124811504, guid: f3c648c5e98a3d64fb64514c03aaf7a3, type: 3} propertyPath: m_LocalPosition.x diff --git a/Assets/scripts/roomSystem/roomPrefab.prefab b/Assets/scripts/roomSystem/roomPrefab.prefab index 1f95a346..0d544a1f 100644 --- a/Assets/scripts/roomSystem/roomPrefab.prefab +++ b/Assets/scripts/roomSystem/roomPrefab.prefab @@ -1,5 +1,158 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &297666895670197330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8067921981373473577} + - component: {fileID: 6291208187820431380} + - component: {fileID: 7823392887615765873} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8067921981373473577 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 297666895670197330} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5204232936996661830} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 19, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6291208187820431380 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 297666895670197330} + m_CullTransparentMesh: 1 +--- !u!114 &7823392887615765873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 297666895670197330} + 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: 381cbb916198e1f4bb089f0f64be9e96, 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!1 &481878158372070694 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7782155306532619577} + - component: {fileID: 8167233327380200489} + - component: {fileID: 7599904938398268637} + m_Layer: 5 + m_Name: dropdowns + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7782155306532619577 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481878158372070694} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5204232936996661830} + m_Father: {fileID: 1941168562955871028} + 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: 241.76, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &8167233327380200489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481878158372070694} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &7599904938398268637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 481878158372070694} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 0 --- !u!1 &516958816543851461 GameObject: m_ObjectHideFlags: 0 @@ -79,6 +232,219 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: "\u64CD\u4F5C" +--- !u!1 &1196118861842933256 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4709096484056050725} + - component: {fileID: 3625346641866722167} + - component: {fileID: 668426393748536778} + - component: {fileID: 3562312910376735070} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4709096484056050725 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1196118861842933256} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6752904927615354953} + m_Father: {fileID: 8547411378682197707} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!222 &3625346641866722167 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1196118861842933256} + m_CullTransparentMesh: 1 +--- !u!114 &668426393748536778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1196118861842933256} + 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 &3562312910376735070 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1196118861842933256} + 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: 5432882957369215098} + m_HandleRect: {fileID: 5749963646950055176} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1513970525881157418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4076382314105363177} + - component: {fileID: 8668358412277255608} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4076382314105363177 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1513970525881157418} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4578518385856611250} + - {fileID: 7684630853949885847} + - {fileID: 8963595018247503288} + m_Father: {fileID: 2477868879624022078} + 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: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &8668358412277255608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1513970525881157418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9203966539732093723} + toggleTransition: 1 + graphic: {fileID: 7616315910023635555} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 --- !u!1 &1893639980700923122 GameObject: m_ObjectHideFlags: 0 @@ -304,6 +670,156 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 3 +--- !u!1 &2307127570237387371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5749963646950055176} + - component: {fileID: 7195766244798449788} + - component: {fileID: 5432882957369215098} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5749963646950055176 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2307127570237387371} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6752904927615354953} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7195766244798449788 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2307127570237387371} + m_CullTransparentMesh: 1 +--- !u!114 &5432882957369215098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2307127570237387371} + 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 &2627180525089960113 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4578518385856611250} + - component: {fileID: 5377058925404118336} + - component: {fileID: 9203966539732093723} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4578518385856611250 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2627180525089960113} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4076382314105363177} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 71, y: 0} + m_SizeDelta: {x: 142, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5377058925404118336 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2627180525089960113} + m_CullTransparentMesh: 1 +--- !u!114 &9203966539732093723 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2627180525089960113} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: ee325a8217db5db47946e9176cacef04, 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 &3185769286089711975 GameObject: m_ObjectHideFlags: 0 @@ -340,6 +856,81 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 28} m_Pivot: {x: 0.5, y: 1} +--- !u!1 &3334992343002511625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7684630853949885847} + - component: {fileID: 1998006215427194334} + - component: {fileID: 7616315910023635555} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7684630853949885847 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3334992343002511625} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4076382314105363177} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 71, y: 0} + m_SizeDelta: {x: 142, y: 27} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1998006215427194334 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3334992343002511625} + m_CullTransparentMesh: 1 +--- !u!114 &7616315910023635555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3334992343002511625} + 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: eb2aa822805d0794ba5d9d7841717145, 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 &3754762388531883915 GameObject: m_ObjectHideFlags: 0 @@ -374,8 +965,8 @@ RectTransform: 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: 337.45, y: 0} - m_SizeDelta: {x: 30, y: 30} + m_AnchoredPosition: {x: 341, y: 0} + m_SizeDelta: {x: 20, y: 20} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2777917508738665196 CanvasRenderer: @@ -415,6 +1006,114 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3867679081671782267 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8547411378682197707} + - component: {fileID: 903426199662887178} + - component: {fileID: 983726185943631632} + - component: {fileID: 5604941734816460845} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8547411378682197707 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3867679081671782267} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2488912855304226602} + - {fileID: 4709096484056050725} + m_Father: {fileID: 5204232936996661830} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &903426199662887178 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3867679081671782267} + m_CullTransparentMesh: 1 +--- !u!114 &983726185943631632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3867679081671782267} + 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: ee325a8217db5db47946e9176cacef04, 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!114 &5604941734816460845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3867679081671782267} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 2477868879624022078} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.4 + m_ScrollSensitivity: 100 + m_Viewport: {fileID: 2488912855304226602} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 3562312910376735070} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &4243738645326134085 GameObject: m_ObjectHideFlags: 0 @@ -473,7 +1172,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -481,7 +1180,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3} m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 @@ -738,6 +1437,223 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 +--- !u!1 &4862343328937402611 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7947751398195209470} + - component: {fileID: 3709878000262059654} + - component: {fileID: 2577392315808924149} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7947751398195209470 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4862343328937402611} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5204232936996661830} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3709878000262059654 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4862343328937402611} + m_CullTransparentMesh: 1 +--- !u!114 &2577392315808924149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4862343328937402611} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!1 &5500187639780761875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5204232936996661830} + - component: {fileID: 1914798638544611727} + - component: {fileID: 8885615233691127308} + - component: {fileID: 1238988965077209182} + m_Layer: 5 + m_Name: filterDropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5204232936996661830 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5500187639780761875} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7947751398195209470} + - {fileID: 8067921981373473577} + - {fileID: 8547411378682197707} + m_Father: {fileID: 7782155306532619577} + 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: 136.2039, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1914798638544611727 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5500187639780761875} + m_CullTransparentMesh: 1 +--- !u!114 &8885615233691127308 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5500187639780761875} + 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: ee325a8217db5db47946e9176cacef04, 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!114 &1238988965077209182 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5500187639780761875} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d0b652f32a2cc243917e4028fa0f046, 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: 8885615233691127308} + m_Template: {fileID: 8547411378682197707} + m_CaptionText: {fileID: 2577392315808924149} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 1465094003261986740} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Option A + m_Image: {fileID: 0} + - m_Text: Option B + m_Image: {fileID: 0} + - m_Text: Option C + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 --- !u!1 &5967867068340093765 GameObject: m_ObjectHideFlags: 0 @@ -796,7 +1712,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -817,6 +1733,85 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: 99 +--- !u!1 &5993969915657006551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8963595018247503288} + - component: {fileID: 2904344748780531042} + - component: {fileID: 1465094003261986740} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8963595018247503288 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5993969915657006551} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4076382314105363177} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2904344748780531042 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5993969915657006551} + m_CullTransparentMesh: 1 +--- !u!114 &1465094003261986740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5993969915657006551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A --- !u!1 &6144844745695202644 GameObject: m_ObjectHideFlags: 0 @@ -1105,7 +2100,7 @@ MonoBehaviour: ownerImage: {fileID: 5302503172557308025} roommateUsername: {fileID: 1134688285347977519} playMode_inRoom: {fileID: 4910574410472972678} - usercando: {fileID: 7991289154858070871} + usercando: {fileID: 1238988965077209182} roommate_readyStatus: {fileID: 2034469742936368417} --- !u!1 &7490184903365898062 GameObject: @@ -1141,6 +2136,7 @@ RectTransform: - {fileID: 9213246885769014732} - {fileID: 3870554162067446919} - {fileID: 4344964384738882385} + - {fileID: 7782155306532619577} - {fileID: 3337639533898938469} - {fileID: 6834823019135599769} m_Father: {fileID: 8082934342913687724} @@ -1178,7 +2174,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 28c51f93b6260224c867f45f411a0e85, type: 3} + m_Sprite: {fileID: 21300000, guid: 9e6a75c290497c4469b9b86d5eab72a1, type: 3} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -1224,6 +2220,42 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7918240215910781917 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6752904927615354953} + 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 &6752904927615354953 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7918240215910781917} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5749963646950055176} + m_Father: {fileID: 4709096484056050725} + 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 &8008320333522854259 GameObject: m_ObjectHideFlags: 0 @@ -1329,7 +2361,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &3337639533898938469 RectTransform: m_ObjectHideFlags: 0 @@ -1449,6 +2481,96 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_AlphaFadeSpeed: 0.15 +--- !u!1 &8704698655028741696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2488912855304226602} + - component: {fileID: 827077318220887129} + - component: {fileID: 3135921547271007429} + - component: {fileID: 1532546559929956468} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2488912855304226602 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8704698655028741696} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2477868879624022078} + m_Father: {fileID: 8547411378682197707} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &827077318220887129 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8704698655028741696} + m_CullTransparentMesh: 1 +--- !u!114 &3135921547271007429 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8704698655028741696} + 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 &1532546559929956468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8704698655028741696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 --- !u!1 &8723288844858419223 GameObject: m_ObjectHideFlags: 0 @@ -1524,6 +2646,42 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8762222012773991245 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2477868879624022078} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2477868879624022078 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8762222012773991245} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4076382314105363177} + m_Father: {fileID: 2488912855304226602} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} --- !u!1 &8918109389386106321 GameObject: m_ObjectHideFlags: 0 @@ -1582,7 +2740,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -1590,7 +2748,7 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: bd4be44636ad6c24a9b117a7108a75e9, type: 3} + m_Font: {fileID: 12800000, guid: d254d20d93651ae448ff13d10dff30ab, type: 3} m_FontSize: 24 m_FontStyle: 0 m_BestFit: 0 diff --git a/Assets/scripts/selectYourSongFirst/load_teammatesProfile.cs b/Assets/scripts/selectYourSongFirst/load_teammatesProfile.cs index e77397b0..2ba06dd7 100644 --- a/Assets/scripts/selectYourSongFirst/load_teammatesProfile.cs +++ b/Assets/scripts/selectYourSongFirst/load_teammatesProfile.cs @@ -129,11 +129,11 @@ public class load_teammatesProfile : MonoBehaviour return; } // Load selected hero IDs from PlayerPrefs - int heroId1 = PlayerPrefs.GetInt("selected_heroSlot01_heroID", 0); - int heroId2 = PlayerPrefs.GetInt("selected_heroSlot02_heroID", 0); - int heroId3 = PlayerPrefs.GetInt("selected_heroSlot03_heroID", 0); - int heroId4 = PlayerPrefs.GetInt("selected_heroSlot04_heroID", 0); - int heroId5 = PlayerPrefs.GetInt("selected_heroSlot05_heroID", 0); + int heroId1 = TeamSelectionDefaults.ReadHeroId(1); + int heroId2 = TeamSelectionDefaults.ReadHeroId(2); + int heroId3 = TeamSelectionDefaults.ReadHeroId(3); + int heroId4 = TeamSelectionDefaults.ReadHeroId(4); + int heroId5 = TeamSelectionDefaults.ReadHeroId(5); // Set sprites for each profile image teammate_profile_01.sprite = GetHeroSquareProfile(heroId1); diff --git a/Assets/settingsPrefab/settings.prefab b/Assets/settingsPrefab/settings.prefab index 7f877b55..ddd71c3b 100644 --- a/Assets/settingsPrefab/settings.prefab +++ b/Assets/settingsPrefab/settings.prefab @@ -37708,35 +37708,35 @@ PrefabInstance: m_Modifications: - target: {fileID: 141260752332647330, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 141260752332647330, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 141260752332647330, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 215.21747 objectReference: {fileID: 0} - target: {fileID: 141260752332647330, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -50.464794 objectReference: {fileID: 0} - target: {fileID: 573062697604945761, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 573062697604945761, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 573062697604945761, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 69.24915 objectReference: {fileID: 0} - target: {fileID: 573062697604945761, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -50.464794 objectReference: {fileID: 0} - target: {fileID: 1210815398582206293, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_Name @@ -37744,31 +37744,31 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1210815398582206293, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2145073164859170087, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4058391479585854502, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5472416487576142977, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5472416487576142977, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 5472416487576142977, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 117.01475 objectReference: {fileID: 0} - target: {fileID: 5472416487576142977, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -50 objectReference: {fileID: 0} - target: {fileID: 5791750043206584204, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_Pivot.x @@ -37852,39 +37852,23 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6520651298926337274, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7686694507390270222, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7686694507390270222, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7686694507390270222, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7686694507390270222, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 + value: 430.4349 objectReference: {fileID: 0} - target: {fileID: 9194745617060358922, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 9194745617060358922, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 9194745617060358922, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 361.18576 objectReference: {fileID: 0} - target: {fileID: 9194745617060358922, guid: 08012d5c72488f746bcbfd620fff0c31, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -50.464794 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] diff --git a/Assets/songsDatabase/SongDetailsUI.cs b/Assets/songsDatabase/SongDetailsUI.cs index 9be42539..a0eecf46 100644 --- a/Assets/songsDatabase/SongDetailsUI.cs +++ b/Assets/songsDatabase/SongDetailsUI.cs @@ -395,6 +395,7 @@ public class SongDetailsUI : MonoBehaviour if (song == null) { Debug.LogWarning("[SongDetailsUI] Room button clicked, but no song is currently selected."); + Bansonic.gNotice.error.display("请先选择歌曲"); return; } @@ -402,6 +403,7 @@ public class SongDetailsUI : MonoBehaviour if (roomService == null) { Debug.LogWarning("[SongDetailsUI] ArenaRoomService is missing."); + Bansonic.gNotice.error.display("房间服务尚未初始化,请稍后重试"); return; } @@ -415,6 +417,7 @@ public class SongDetailsUI : MonoBehaviour catch (Exception ex) { Debug.LogWarning($"[SongDetailsUI] Failed to refresh current room: {ex.Message}"); + NetworkManager.ShowUserFacingNetworkError(ex.Message); DestroyRoomDetailsInstance(); ShowRoomAsk(song, roomService); } diff --git a/Assets/storeSystem/UI_Panel_Store.prefab b/Assets/storeSystem/UI_Panel_Store.prefab index 4e273e50..dbaec825 100644 --- a/Assets/storeSystem/UI_Panel_Store.prefab +++ b/Assets/storeSystem/UI_Panel_Store.prefab @@ -3432,7 +3432,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" + m_Text: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" --- !u!1 &1005385223516920532 GameObject: m_ObjectHideFlags: 0 @@ -6424,7 +6424,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" + m_Text: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" --- !u!1 &1825620682863746934 GameObject: m_ObjectHideFlags: 0 @@ -9187,7 +9187,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + m_Text: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" --- !u!1 &2327942620657710286 GameObject: m_ObjectHideFlags: 0 @@ -16249,8 +16249,8 @@ MonoBehaviour: coinSprite: {fileID: 21300000, guid: ddce9ea8759b6ca47b6d177982d1ed1e, type: 3} materialSprite: {fileID: 21300000, guid: 9753216db376a75409e917958811eb28, type: 3} cannotBuySprite: {fileID: 21300000, guid: 31a50f150f27159408988fc7f06b2f9e, type: 3} - memoryBuyPlanSprite: {fileID: 21300000, guid: ddce9ea8759b6ca47b6d177982d1ed1e, type: 3} - memorySellPlanSprite: {fileID: 21300000, guid: 9753216db376a75409e917958811eb28, type: 3} + memoryBuyPlanSprite: {fileID: 21300000, guid: 9753216db376a75409e917958811eb28, type: 3} + memorySellPlanSprite: {fileID: 21300000, guid: ddce9ea8759b6ca47b6d177982d1ed1e, type: 3} p_itemName: {fileID: 367982752364813130} p_itemNameFollowRichTextColor: 0 p_itemImage: {fileID: 8550183957802516248} @@ -18522,7 +18522,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + m_Text: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" --- !u!1 &4408948920088244214 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/storeSystem/items/medicines/78021_growthMaterial.asset b/Assets/storeSystem/items/medicines/78021_growthMaterial.asset index fb0d5c77..d4ecb9f0 100644 --- a/Assets/storeSystem/items/medicines/78021_growthMaterial.asset +++ b/Assets/storeSystem/items/medicines/78021_growthMaterial.asset @@ -17,7 +17,7 @@ MonoBehaviour: growthMaterialSprite: {fileID: 21300000, guid: 1d7736a1cf9771648937563b3a46692b, type: 3} itemRarity: 2 growthMaterialUsage: "\u89D2\u8272\u7A81\u7834" - growthMaterialDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" + growthMaterialDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3B\u3002" runtimeOwnedCount: 0 materialType: 0 serviceLevel: 1 diff --git a/Assets/storeSystem/items/medicines/78022_growthMaterial.asset b/Assets/storeSystem/items/medicines/78022_growthMaterial.asset index 97c178f3..c5faf7bf 100644 --- a/Assets/storeSystem/items/medicines/78022_growthMaterial.asset +++ b/Assets/storeSystem/items/medicines/78022_growthMaterial.asset @@ -17,7 +17,7 @@ MonoBehaviour: growthMaterialSprite: {fileID: 21300000, guid: c127de0638777b44abde4d860bd00436, type: 3} itemRarity: 3 growthMaterialUsage: "\u89D2\u8272\u7A81\u7834" - growthMaterialDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" + growthMaterialDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684B\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3A\u3002" runtimeOwnedCount: 0 materialType: 0 serviceLevel: 2 diff --git a/Assets/storeSystem/items/medicines/78023_growthMaterial.asset b/Assets/storeSystem/items/medicines/78023_growthMaterial.asset index e64790e3..d67156cc 100644 --- a/Assets/storeSystem/items/medicines/78023_growthMaterial.asset +++ b/Assets/storeSystem/items/medicines/78023_growthMaterial.asset @@ -17,7 +17,7 @@ MonoBehaviour: growthMaterialSprite: {fileID: 21300000, guid: ff5a196ca29ac7940b52badef5f6cc9a, type: 3} itemRarity: 4 growthMaterialUsage: "\u89D2\u8272\u7A81\u7834" - growthMaterialDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + growthMaterialDescription: "\u53EA\u6709\u6EE1\u7ECF\u9A8C\u7684A\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" runtimeOwnedCount: 0 materialType: 0 serviceLevel: 3 diff --git a/Assets/storeSystem/items/medicines/78024_growthMaterial.asset b/Assets/storeSystem/items/medicines/78024_growthMaterial.asset index b4762182..130b2e31 100644 --- a/Assets/storeSystem/items/medicines/78024_growthMaterial.asset +++ b/Assets/storeSystem/items/medicines/78024_growthMaterial.asset @@ -17,7 +17,7 @@ MonoBehaviour: growthMaterialSprite: {fileID: 21300000, guid: 6c859c4435743da4da5fa9039a885d17, type: 3} itemRarity: 5 growthMaterialUsage: "\u89D2\u8272\u7A81\u7834" - growthMaterialDescription: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u91D1\u5E01\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" + growthMaterialDescription: "\u6EE1\u7ECF\u9A8C\u7684\u4EFB\u610F\u9605\u5386\u8D44\u683C\u5076\u50CF\u53EF\u7528\u3002\u8DB3\u591F\u6570\u91CF\u7684\u5F52\u6863\u5408\u7EA6\u548C\u4E00\u5B9A\u7B97\u529B\u53EF\u4F7F\u5176\u7A81\u7834\u81F3S\u3002" runtimeOwnedCount: 0 materialType: 1 serviceLevel: 0 diff --git a/Assets/storeSystem/storeSystem.cs b/Assets/storeSystem/storeSystem.cs index 817e0624..b90b2737 100644 --- a/Assets/storeSystem/storeSystem.cs +++ b/Assets/storeSystem/storeSystem.cs @@ -1329,7 +1329,7 @@ public class storeSystem : MonoBehaviour var primaryCost = itemSO.costRequirements[0]; int totalCost = Mathf.Max(0, primaryCost.amount); - string insufficientMessage = primaryCost.currencyType == storeItemSO.CurrencyType.material ? "记忆碎片不足" : "货币不足"; + string insufficientMessage = primaryCost.currencyType == storeItemSO.CurrencyType.material ? "记忆碎片不足" : "算力不足"; if (!HasEnoughCurrency(primaryCost.currencyType, totalCost)) { @@ -1407,7 +1407,7 @@ public class storeSystem : MonoBehaviour var primaryCost = itemSO.costRequirements[0]; int totalCost = Mathf.Max(0, primaryCost.amount); - string insufficientMessage = primaryCost.currencyType == storeItemSO.CurrencyType.material ? "记忆碎片不足" : "货币不足"; + string insufficientMessage = primaryCost.currencyType == storeItemSO.CurrencyType.material ? "记忆碎片不足" : "算力不足"; if (!HasEnoughCurrency(primaryCost.currencyType, totalCost)) { diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 19955b04..7f03dc39 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -14,7 +14,7 @@ PlayerSettings: accelerometerFrequency: 60 companyName: FloatGamingStudio productName: Bansonic - defaultCursor: {fileID: 0} + defaultCursor: {fileID: 2800000, guid: 2789dc4fff91b044a885db9f61360702, type: 3} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.745283, g: 0.745283, b: 0.745283, a: 1} m_ShowUnitySplashScreen: 0 @@ -143,7 +143,8 @@ PlayerSettings: visionOSBundleVersion: 1.0 tvOSBundleVersion: 1.0 bundleVersion: 1.0.01 - preloadedAssets: [] + preloadedAssets: + - {fileID: 11400000, guid: 87fa00178d138a349884b45f12225fea, type: 2} metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1 diff --git a/gameServerPython b/gameServerPython index 78cefe5c..addc5fa5 160000 --- a/gameServerPython +++ b/gameServerPython @@ -1 +1 @@ -Subproject commit 78cefe5cce735ca15adae55c54a657e9e2a23bd0 +Subproject commit addc5fa5715a04dac5a8bfe9106c83a903ee0d29