diff --git a/Assets/Language/Dialog/FP_Prologue/FP_Prologue Shared Data.asset b/Assets/Language/Dialog/FP_Prologue/FP_Prologue Shared Data.asset index c3a5a5b43..92990a0e3 100644 --- a/Assets/Language/Dialog/FP_Prologue/FP_Prologue Shared Data.asset +++ b/Assets/Language/Dialog/FP_Prologue/FP_Prologue Shared Data.asset @@ -19,147 +19,147 @@ MonoBehaviour: m_Key: line:0e3b3ba m_Metadata: m_Items: - - rid: 4007725415241089026 + - rid: 1784249128810447066 - m_Id: 1151122466148353 m_Key: line:01c1dfc m_Metadata: m_Items: - - rid: 4007725415241089027 + - rid: 1784249128810447067 - m_Id: 1151122466148354 m_Key: line:08eb9ab m_Metadata: m_Items: - - rid: 4007725415241089028 + - rid: 1784249128810447068 - m_Id: 1151122466148355 m_Key: line:0bf981d m_Metadata: m_Items: - - rid: 4007725415241089029 + - rid: 1784249128810447069 - m_Id: 1151122466148356 m_Key: line:03f99fe m_Metadata: m_Items: - - rid: 4007725415241089030 + - rid: 1784249128810447070 - m_Id: 1151122466148357 m_Key: line:0b98273 m_Metadata: m_Items: - - rid: 4007725415241089031 + - rid: 1784249128810447071 - m_Id: 1151122466148358 m_Key: line:0fef445 m_Metadata: m_Items: - - rid: 4007725415241089032 + - rid: 1784249128810447072 - m_Id: 1151122466148359 m_Key: line:0e4e2a7 m_Metadata: m_Items: - - rid: 4007725415241089033 + - rid: 1784249128810447073 - m_Id: 1151122466148360 m_Key: line:0849aef m_Metadata: m_Items: - - rid: 4007725415241089034 + - rid: 1784249128810447074 - m_Id: 1151122466148361 m_Key: line:07a0e10 m_Metadata: m_Items: - - rid: 4007725415241089035 + - rid: 1784249128810447075 - m_Id: 1151122466148362 m_Key: line:0a6cc48 m_Metadata: m_Items: - - rid: 4007725415241089036 + - rid: 1784249128810447076 - m_Id: 1151122466148363 m_Key: line:07c7fc7 m_Metadata: m_Items: - - rid: 4007725415241089037 + - rid: 1784249128810447077 - m_Id: 1151122466148364 m_Key: line:0a5293c m_Metadata: m_Items: - - rid: 4007725415241089038 + - rid: 1784249128810447078 - m_Id: 1151122466148365 m_Key: line:0bc09c4 m_Metadata: m_Items: - - rid: 4007725415241089039 + - rid: 1784249128810447079 - m_Id: 1151122466148366 m_Key: line:023ac3f m_Metadata: m_Items: - - rid: 4007725415241089040 + - rid: 1784249128810447080 - m_Id: 1151122466148367 m_Key: line:0c5ffe4 m_Metadata: m_Items: - - rid: 4007725415241089041 + - rid: 1784249128810447081 - m_Id: 1151122466148368 m_Key: line:0c5bd59 m_Metadata: m_Items: - - rid: 4007725415241089042 + - rid: 1784249128810447082 - m_Id: 1151122466148369 m_Key: line:021552c m_Metadata: m_Items: - - rid: 4007725415241089043 + - rid: 1784249128810447083 - m_Id: 1151122466148370 m_Key: line:08d1f7d m_Metadata: m_Items: - - rid: 5935570885975212847 + - rid: 1784249128810447084 - m_Id: 1151122466148371 m_Key: line:0c9f813 m_Metadata: m_Items: - - rid: 4007725415241089044 + - rid: 1784249128810447085 - m_Id: 1151122466148372 m_Key: line:0cf04a4 m_Metadata: m_Items: - - rid: 4007725415241089045 + - rid: 1784249128810447086 - m_Id: 1151122466148373 m_Key: line:0059ace m_Metadata: m_Items: - - rid: 4007725415241089046 + - rid: 1784249128810447087 - m_Id: 1151122466148374 m_Key: line:0052964 m_Metadata: m_Items: - - rid: 4007725415241089047 + - rid: 1784249128810447088 - m_Id: 1151122466148375 m_Key: line:0657a42 m_Metadata: m_Items: - - rid: 4007725415241089048 + - rid: 1784249128810447089 - m_Id: 1151122466148376 m_Key: line:02a9739 m_Metadata: m_Items: - - rid: 4007725415241089049 + - rid: 1784249128810447090 - m_Id: 1151122466148377 m_Key: line:04a9080 m_Metadata: m_Items: - - rid: 4007725415241089050 + - rid: 1784249128810447091 - m_Id: 1151122466148378 m_Key: line:0f85e9f m_Metadata: m_Items: - - rid: 4007725415241089051 + - rid: 1784249128810447092 - m_Id: 1151122466148379 m_Key: line:0f0e96d m_Metadata: m_Items: - - rid: 4007725415241089052 + - rid: 1784249128810447093 - m_Id: 1151122466148380 m_Key: line:0d447f7 m_Metadata: m_Items: - - rid: 4007725415241089053 + - rid: 1784249128810447094 - m_Id: 1151122466148381 m_Key: line:0345c62 m_Metadata: @@ -169,12 +169,12 @@ MonoBehaviour: m_Key: line:03c692e m_Metadata: m_Items: - - rid: 4007725415241089054 + - rid: 1784249128810447095 - m_Id: 1151122466148383 m_Key: line:04d5033 m_Metadata: m_Items: - - rid: 4007725415241089055 + - rid: 1784249128810447096 - m_Id: 1151122466148384 m_Key: line:0238d8f m_Metadata: @@ -209,207 +209,207 @@ MonoBehaviour: m_Key: line:0e37a5a m_Metadata: m_Items: - - rid: 4007725415241089056 + - rid: 1784249128810447097 - m_Id: 1151122466148391 m_Key: line:064e749 m_Metadata: m_Items: - - rid: 4007725415241089057 + - rid: 1784249128810447098 - m_Id: 1151122466148392 m_Key: line:0582043 m_Metadata: m_Items: - - rid: 4007725415241089058 + - rid: 1784249128810447099 - m_Id: 1151122466148393 m_Key: line:014641d m_Metadata: m_Items: - - rid: 4007725415241089059 + - rid: 1784249128810447100 - m_Id: 1151122466148394 m_Key: line:002672d m_Metadata: m_Items: - - rid: 4007725415241089060 + - rid: 1784249128810447101 - m_Id: 1151122466148395 m_Key: line:0408052 m_Metadata: m_Items: - - rid: 4007725415241089061 + - rid: 1784249128810447102 - m_Id: 1151122466148396 m_Key: line:037a594 m_Metadata: m_Items: - - rid: 4007725415241089062 + - rid: 1784249128810447103 - m_Id: 1151122466148397 m_Key: line:0b1dd52 m_Metadata: m_Items: - - rid: 4007725415241089063 + - rid: 1784249128810447104 - m_Id: 1151122466148398 m_Key: line:0274eb9 m_Metadata: m_Items: - - rid: 4007725415241089064 + - rid: 1784249128810447105 - m_Id: 1151122466148399 m_Key: line:0ab8d02 m_Metadata: m_Items: - - rid: 4007725415241089065 + - rid: 1784249128810447106 - m_Id: 1151122466148401 m_Key: line:015afd3 m_Metadata: m_Items: - - rid: 4007725415241089066 + - rid: 1784249128810447107 - m_Id: 1151122466148402 m_Key: line:0b94b47 m_Metadata: m_Items: - - rid: 4007725415241089067 + - rid: 1784249128810447108 - m_Id: 1151122466148403 m_Key: line:04b0c1b m_Metadata: m_Items: - - rid: 4007725415241089068 + - rid: 1784249128810447109 - m_Id: 1151122466148404 m_Key: line:0e795e0 m_Metadata: m_Items: - - rid: 4007725415241089069 + - rid: 1784249128810447110 - m_Id: 1151122466148405 m_Key: line:0a0aea0 m_Metadata: m_Items: - - rid: 4007725415241089070 + - rid: 1784249128810447111 - m_Id: 1151122466148406 m_Key: line:0d70b5d m_Metadata: m_Items: - - rid: 4007725415241089071 + - rid: 1784249128810447112 - m_Id: 1151122466148407 m_Key: line:067a91c m_Metadata: m_Items: - - rid: 4007725415241089072 + - rid: 1784249128810447113 - m_Id: 1151122466148408 m_Key: line:015ac4e m_Metadata: m_Items: - - rid: 4007725415241089073 + - rid: 1784249128810447114 - m_Id: 1151122466148409 m_Key: line:034ac74 m_Metadata: m_Items: - - rid: 4007725415241089074 + - rid: 1784249128810447115 - m_Id: 1151122466148410 m_Key: line:002dd4c m_Metadata: m_Items: - - rid: 4007725415241089075 + - rid: 1784249128810447116 - m_Id: 1151122466148411 m_Key: line:0baa994 m_Metadata: m_Items: - - rid: 4007725415241089076 + - rid: 1784249128810447117 - m_Id: 1151122466148412 m_Key: line:02886c3 m_Metadata: m_Items: - - rid: 4007725415241089077 + - rid: 1784249128810447118 - m_Id: 1151122466148413 m_Key: line:0f7b387 m_Metadata: m_Items: - - rid: 4007725415241089078 + - rid: 1784249128810447119 - m_Id: 1151122466148414 m_Key: line:0b2facf m_Metadata: m_Items: - - rid: 4007725415241089079 + - rid: 1784249128810447120 - m_Id: 1151122466148415 m_Key: line:0b300c9 m_Metadata: m_Items: - - rid: 4007725415241089080 + - rid: 1784249128810447121 - m_Id: 1151122466148416 m_Key: line:05d9762 m_Metadata: m_Items: - - rid: 4007725415241089081 + - rid: 1784249128810447122 - m_Id: 1151122466148417 m_Key: line:08ee885 m_Metadata: m_Items: - - rid: 4007725415241089082 + - rid: 1784249128810447123 - m_Id: 1151122466148418 m_Key: line:0ff4f18 m_Metadata: m_Items: - - rid: 4007725415241089083 + - rid: 1784249128810447124 - m_Id: 1151122466148419 m_Key: line:075ce88 m_Metadata: m_Items: - - rid: 4007725415241089084 + - rid: 1784249128810447125 - m_Id: 1151122466148420 m_Key: line:0988eb7 m_Metadata: m_Items: - - rid: 4007725415241089085 + - rid: 1784249128810447126 - m_Id: 1151122466148421 m_Key: line:06e525c m_Metadata: m_Items: - - rid: 4007725415241089086 + - rid: 1784249128810447127 - m_Id: 1151122466148422 m_Key: line:09c9916 m_Metadata: m_Items: - - rid: 4007725415241089087 + - rid: 1784249128810447128 - m_Id: 1151122466148423 m_Key: line:06d8df6 m_Metadata: m_Items: - - rid: 4007725415241089088 + - rid: 1784249128810447129 - m_Id: 1151122466148424 m_Key: line:0beab2a m_Metadata: m_Items: - - rid: 4007725415241089089 + - rid: 1784249128810447130 - m_Id: 1151122466148425 m_Key: line:0a8089b m_Metadata: m_Items: - - rid: 4007725415241089090 + - rid: 1784249128810447131 - m_Id: 1151122466148426 m_Key: line:014f73d m_Metadata: m_Items: - - rid: 4007725415241089091 + - rid: 1784249128810447132 - m_Id: 1151122466148427 m_Key: line:0352590 m_Metadata: m_Items: - - rid: 4007725415241089092 + - rid: 1784249128810447133 - m_Id: 1151122466148428 m_Key: line:0cf6d36 m_Metadata: m_Items: - - rid: 4007725415241089093 + - rid: 1784249128810447134 - m_Id: 1151122466148429 m_Key: line:0c23843 m_Metadata: m_Items: - - rid: 4007725415241089094 + - rid: 1784249128810447135 - m_Id: 1151122466148430 m_Key: line:060f2e3 m_Metadata: m_Items: - - rid: 4007725415241089095 + - rid: 1784249128810447136 - m_Id: 1151122466148431 m_Key: line:0b93ed1 m_Metadata: m_Items: - - rid: 4007725415241089096 + - rid: 1784249128810447137 - m_Id: 1151122466148432 m_Key: line:0e7b127 m_Metadata: @@ -559,146 +559,146 @@ MonoBehaviour: m_Key: line:095d856 m_Metadata: m_Items: - - rid: 4007725415241089097 + - rid: 1784249128810447138 - m_Id: 1151122466148462 m_Key: line:0995165 m_Metadata: m_Items: - - rid: 4007725415241089098 + - rid: 1784249128810447139 - m_Id: 1151122466148463 m_Key: line:0382726 m_Metadata: m_Items: - - rid: 4007725415241089099 + - rid: 1784249128810447140 - m_Id: 1151122466148464 m_Key: line:0668599 m_Metadata: m_Items: - - rid: 4007725415241089100 + - rid: 1784249128810447141 - m_Id: 1151122466148465 m_Key: line:0bf67b0 m_Metadata: m_Items: - - rid: 4007725415241089101 + - rid: 1784249128810447142 - m_Id: 1405850710343680 m_Key: line:0433383 m_Metadata: m_Items: - - rid: 5935570730871160913 - - rid: 5935570885975212907 - - rid: 4007725415241089102 + - rid: 1784249128810446927 + - rid: 1784249128810447036 + - rid: 1784249128810447143 - m_Id: 1405850815201280 m_Key: line:08a3591 m_Metadata: m_Items: - - rid: 5935570730871160915 - - rid: 5935570885975212908 - - rid: 4007725415241089103 + - rid: 1784249128810446928 + - rid: 1784249128810447037 + - rid: 1784249128810447144 - m_Id: 1405850815201281 m_Key: line:0681cac m_Metadata: m_Items: - - rid: 5935570730871160917 - - rid: 5935570885975212909 - - rid: 4007725415241089104 + - rid: 1784249128810446929 + - rid: 1784249128810447038 + - rid: 1784249128810447145 - m_Id: 1405850815201282 m_Key: line:0e05aec m_Metadata: m_Items: - - rid: 5935570730871160919 - - rid: 5935570885975212910 - - rid: 4007725415241089105 + - rid: 1784249128810446930 + - rid: 1784249128810447039 + - rid: 1784249128810447146 - m_Id: 1405850815201283 m_Key: line:06122b9 m_Metadata: m_Items: - - rid: 5935570730871160921 - - rid: 5935570885975212911 - - rid: 4007725415241089106 + - rid: 1784249128810446931 + - rid: 1784249128810447040 + - rid: 1784249128810447147 - m_Id: 1405850815201284 m_Key: line:0862409 m_Metadata: m_Items: - - rid: 5935570730871160923 - - rid: 5935570885975212912 - - rid: 4007725415241089107 + - rid: 1784249128810446932 + - rid: 1784249128810447041 + - rid: 1784249128810447148 - m_Id: 1405850815201285 m_Key: line:0c259fd m_Metadata: m_Items: - - rid: 5935570730871160925 - - rid: 5935570885975212913 - - rid: 4007725415241089108 + - rid: 1784249128810446933 + - rid: 1784249128810447042 + - rid: 1784249128810447149 - m_Id: 1405850815201286 m_Key: line:0d0a44f m_Metadata: m_Items: - - rid: 5935570730871160927 - - rid: 5935570885975212914 - - rid: 4007725415241089109 + - rid: 1784249128810446934 + - rid: 1784249128810447043 + - rid: 1784249128810447150 - m_Id: 1405850815201287 m_Key: line:0e63512 m_Metadata: m_Items: - - rid: 5935570730871160929 - - rid: 5935570885975212915 - - rid: 4007725415241089110 + - rid: 1784249128810446935 + - rid: 1784249128810447044 + - rid: 1784249128810447151 - m_Id: 1405850815201288 m_Key: line:08d3946 m_Metadata: m_Items: - - rid: 5935570730871160931 - - rid: 5935570885975212916 - - rid: 4007725415241089111 + - rid: 1784249128810446936 + - rid: 1784249128810447045 + - rid: 1784249128810447152 - m_Id: 1405850815201289 m_Key: line:05804d7 m_Metadata: m_Items: - - rid: 5935570730871160933 - - rid: 5935570885975212917 - - rid: 4007725415241089112 + - rid: 1784249128810446937 + - rid: 1784249128810447046 + - rid: 1784249128810447153 - m_Id: 1405850815201290 m_Key: line:0dfddde m_Metadata: m_Items: - - rid: 5935570730871160935 - - rid: 5935570885975212918 - - rid: 4007725415241089113 + - rid: 1784249128810446938 + - rid: 1784249128810447047 + - rid: 1784249128810447154 - m_Id: 1405850815201291 m_Key: line:0740cff m_Metadata: m_Items: - - rid: 5935570730871160937 - - rid: 5935570885975212919 - - rid: 4007725415241089114 + - rid: 1784249128810446939 + - rid: 1784249128810447048 + - rid: 1784249128810447155 - m_Id: 1405850815201292 m_Key: line:00274a3 m_Metadata: m_Items: - - rid: 5935570730871160939 - - rid: 5935570885975212920 - - rid: 4007725415241089115 + - rid: 1784249128810446940 + - rid: 1784249128810447049 + - rid: 1784249128810447156 - m_Id: 1405850815201293 m_Key: line:0489e3a m_Metadata: m_Items: - - rid: 5935570730871160941 - - rid: 5935570885975212921 - - rid: 4007725415241089116 + - rid: 1784249128810446941 + - rid: 1784249128810447050 + - rid: 1784249128810447157 - m_Id: 1405850815201294 m_Key: line:0fd4c6f m_Metadata: m_Items: - - rid: 5935570730871160943 - - rid: 5935570885975212922 - - rid: 4007725415241089117 + - rid: 1784249128810446942 + - rid: 1784249128810447051 + - rid: 1784249128810447158 - m_Id: 1405850815201295 m_Key: line:008fd04 m_Metadata: m_Items: - - rid: 5935570730871160945 - - rid: 5935570885975212923 - - rid: 4007725415241089118 + - rid: 1784249128810446943 + - rid: 1784249128810447052 + - rid: 1784249128810447159 - m_Id: 1405850815201296 m_Key: line:042addb m_Metadata: @@ -724,49 +724,49 @@ MonoBehaviour: m_Key: line:01f682e m_Metadata: m_Items: - - rid: 5935570730871160947 - - rid: 5935570885975212924 - - rid: 4007725415241089119 + - rid: 1784249128810446944 + - rid: 1784249128810447053 + - rid: 1784249128810447160 - m_Id: 1405850815201300 m_Key: line:0c297b0 m_Metadata: m_Items: - - rid: 5935570730871160949 - - rid: 5935570885975212925 - - rid: 4007725415241089120 + - rid: 1784249128810446945 + - rid: 1784249128810447054 + - rid: 1784249128810447161 - m_Id: 1405850815201301 m_Key: line:0a13a1b m_Metadata: m_Items: - - rid: 5935570730871160951 - - rid: 5935570885975212926 - - rid: 4007725415241089121 + - rid: 1784249128810446946 + - rid: 1784249128810447055 + - rid: 1784249128810447162 - m_Id: 1405850815201302 m_Key: line:037d57d m_Metadata: m_Items: - - rid: 5935570730871160953 - - rid: 5935570885975212927 - - rid: 4007725415241089122 + - rid: 1784249128810446947 + - rid: 1784249128810447056 + - rid: 1784249128810447163 - m_Id: 1405850815201303 m_Key: line:0797a17 m_Metadata: m_Items: - - rid: 5935570730871160955 - - rid: 5935570885975212928 - - rid: 4007725415241089123 + - rid: 1784249128810446948 + - rid: 1784249128810447057 + - rid: 1784249128810447164 - m_Id: 1405850815201304 m_Key: line:0d5406c m_Metadata: m_Items: - - rid: 5935570730871160957 - - rid: 5935570885975212929 - - rid: 4007725415241089124 + - rid: 1784249128810446949 + - rid: 1784249128810447058 + - rid: 1784249128810447165 - m_Id: 1407327130517504 m_Key: line:02291eb m_Metadata: m_Items: - - rid: 4007725415241089125 + - rid: 1784249128810447166 - m_Id: 1421521926127618 m_Key: line:8ed044f4 m_Metadata: @@ -786,32 +786,32 @@ MonoBehaviour: m_Key: line:0cc9043 m_Metadata: m_Items: - - rid: 4007725415241089126 + - rid: 1784249128810447167 - m_Id: 1487731321634816 m_Key: line:06dd480 m_Metadata: m_Items: - - rid: 4007725415241089127 + - rid: 1784249128810447168 - m_Id: 1487731321634817 m_Key: line:0a88566 m_Metadata: m_Items: - - rid: 4007725415241089128 + - rid: 1784249128810447169 - m_Id: 1487731321634818 m_Key: line:084763e m_Metadata: m_Items: - - rid: 4007725415241089129 + - rid: 1784249128810447170 - m_Id: 1487731321634819 m_Key: line:0b1d611 m_Metadata: m_Items: - - rid: 4007725415241089130 + - rid: 1784249128810447171 - m_Id: 30120683173318656 m_Key: line:083eaa8 m_Metadata: m_Items: - - rid: 4007725415241089132 + - rid: 1784249128810447172 - m_Id: 30830409666269184 m_Key: "\u8BB0\u5FC6" m_Metadata: @@ -824,6 +824,16 @@ MonoBehaviour: m_Key: "\u903B\u8F91" m_Metadata: m_Items: [] + - m_Id: 53970478019121152 + m_Key: line:d4b18fce + m_Metadata: + m_Items: + - rid: 1784249128810446957 + - m_Id: 53970478052675584 + m_Key: line:6ee08657 + m_Metadata: + m_Items: + - rid: 1784249128810446958 m_Metadata: m_Items: [] m_KeyGenerator: @@ -831,6 +841,795 @@ MonoBehaviour: references: version: 2 RefIds: + - rid: 1784249128810446927 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810446928 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446929 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446930 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446931 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446932 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446933 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446934 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810446935 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446936 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446937 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446938 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446939 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446940 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446941 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810446942 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446943 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446944 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446945 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446946 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446947 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446948 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810446949 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810446957 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810446958 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447036 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810447037 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447038 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447039 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447040 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447041 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447042 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447043 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447044 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447045 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447046 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447047 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447048 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447049 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447050 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810447051 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447052 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447053 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447054 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447055 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447056 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447057 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447058 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810447066 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447067 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447068 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447069 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447070 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447071 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447072 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447073 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447074 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447075 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447076 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447077 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447078 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447079 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447080 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447081 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447082 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447083 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447084 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447085 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447086 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447087 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447088 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447089 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447090 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447091 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447092 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447093 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447094 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68A6" + tags: [] + - rid: 1784249128810447095 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u5F00\u573A" + tags: [] + - rid: 1784249128810447096 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u5F00\u573A" + tags: [] + - rid: 1784249128810447097 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u624B\u672F\u51C6\u5907" + tags: [] + - rid: 1784249128810447098 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u624B\u672F\u51C6\u5907" + tags: [] + - rid: 1784249128810447099 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u624B\u672F\u51C6\u5907" + tags: [] + - rid: 1784249128810447100 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u624B\u672F\u51C6\u5907" + tags: [] + - rid: 1784249128810447101 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u624B\u672F\u51C6\u5907" + tags: [] + - rid: 1784249128810447102 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810447103 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447104 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447105 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447106 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447107 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447108 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810447109 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810447110 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447111 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447112 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447113 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447114 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447115 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447116 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: + - auto_next + - rid: 1784249128810447117 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447118 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447119 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447120 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447121 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: + - auto_next + - rid: 1784249128810447122 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447123 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447124 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447125 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447126 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447127 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447128 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447129 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447130 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447131 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7535\u51FB\u540E" + tags: [] + - rid: 1784249128810447132 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810447133 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810447134 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" + tags: + - auto_next + - rid: 1784249128810447135 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447136 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" + tags: + - auto_next + - rid: 1784249128810447137 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447138 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68C0\u67E5\u8868\u8FBE" + tags: [] + - rid: 1784249128810447139 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68C0\u67E5\u8868\u8FBE" + tags: [] + - rid: 1784249128810447140 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68C0\u67E5\u8868\u8FBE" + tags: [] + - rid: 1784249128810447141 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68C0\u67E5\u8868\u8FBE" + tags: + - lastline + - rid: 1784249128810447142 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: end + tags: + - auto_next + - rid: 1784249128810447143 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" + tags: [] + - rid: 1784249128810447144 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447145 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447146 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447147 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447148 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447149 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447150 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810447151 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447152 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447153 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447154 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447155 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447156 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447157 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810447158 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447159 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447160 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447161 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447162 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447163 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447164 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447165 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: + - lastline + - rid: 1784249128810447166 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" + tags: [] + - rid: 1784249128810447167 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447168 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447169 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" + tags: [] + - rid: 1784249128810447170 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68C0\u67E5\u8868\u8FBE" + tags: [] + - rid: 1784249128810447171 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u68C0\u67E5\u8868\u8FBE" + tags: [] + - rid: 1784249128810447172 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" + tags: [] - rid: 2039681254969049839 type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} data: @@ -896,786 +1695,6 @@ MonoBehaviour: data: nodeName: "\u68A6" tags: [] - - rid: 4007725415241089026 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089027 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089028 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089029 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089030 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089031 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089032 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089033 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089034 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089035 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089036 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089037 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089038 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089039 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089040 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089041 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089042 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089043 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089044 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089045 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089046 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089047 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089048 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089049 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089050 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089051 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089052 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089053 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 4007725415241089054 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u5F00\u573A" - tags: [] - - rid: 4007725415241089055 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u5F00\u573A" - tags: [] - - rid: 4007725415241089056 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u624B\u672F\u51C6\u5907" - tags: [] - - rid: 4007725415241089057 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u624B\u672F\u51C6\u5907" - tags: [] - - rid: 4007725415241089058 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u624B\u672F\u51C6\u5907" - tags: [] - - rid: 4007725415241089059 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u624B\u672F\u51C6\u5907" - tags: [] - - rid: 4007725415241089060 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u624B\u672F\u51C6\u5907" - tags: [] - - rid: 4007725415241089061 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" - tags: [] - - rid: 4007725415241089062 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089063 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089064 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089065 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089066 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089067 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664" - tags: [] - - rid: 4007725415241089068 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664" - tags: [] - - rid: 4007725415241089069 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089070 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089071 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089072 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089073 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089074 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089075 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: - - auto_next - - rid: 4007725415241089076 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089077 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089078 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089079 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089080 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: - - auto_next - - rid: 4007725415241089081 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089082 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089083 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089084 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089085 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089086 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089087 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089088 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089089 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089090 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7535\u51FB\u540E" - tags: [] - - rid: 4007725415241089091 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664" - tags: [] - - rid: 4007725415241089092 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664" - tags: [] - - rid: 4007725415241089093 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" - tags: - - auto_next - - rid: 4007725415241089094 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089095 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" - tags: - - auto_next - - rid: 4007725415241089096 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089097 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68C0\u67E5\u8868\u8FBE" - tags: [] - - rid: 4007725415241089098 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68C0\u67E5\u8868\u8FBE" - tags: [] - - rid: 4007725415241089099 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68C0\u67E5\u8868\u8FBE" - tags: [] - - rid: 4007725415241089100 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68C0\u67E5\u8868\u8FBE" - tags: - - lastline - - rid: 4007725415241089101 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: end - tags: - - auto_next - - rid: 4007725415241089102 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" - tags: [] - - rid: 4007725415241089103 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089104 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089105 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089106 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089107 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089108 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089109 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 4007725415241089110 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089111 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089112 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089113 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089114 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089115 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089116 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 4007725415241089117 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089118 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089119 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089120 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089121 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089122 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089123 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089124 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 4007725415241089125 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 4007725415241089126 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089127 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089128 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 4007725415241089129 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68C0\u67E5\u8868\u8FBE" - tags: [] - - rid: 4007725415241089130 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68C0\u67E5\u8868\u8FBE" - tags: [] - - rid: 4007725415241089132 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664\u540E" - tags: [] - - rid: 5935570730871160913 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" - tags: [] - - rid: 5935570730871160915 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160917 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160919 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160921 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160923 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160925 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160927 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 5935570730871160929 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160931 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160933 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160935 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160937 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160939 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160941 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 5935570730871160943 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160945 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160947 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160949 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160951 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160953 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160955 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570730871160957 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 5935570885975212847 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u68A6" - tags: [] - - rid: 5935570885975212907 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u5207\u9664" - tags: [] - - rid: 5935570885975212908 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212909 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212910 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212911 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212912 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212913 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212914 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E00\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 5935570885975212915 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212916 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212917 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212918 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212919 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212920 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212921 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E8C\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - - rid: 5935570885975212922 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212923 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212924 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212925 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212926 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212927 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212928 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: [] - - rid: 5935570885975212929 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: "\u7B2C\u4E09\u6B21\u68C0\u67E5\u5F02\u5E38\u6A21\u5757" - tags: - - lastline - rid: 8171259491245359106 type: {class: DistributedUIDGenerator, ns: UnityEngine.Localization.Tables, asm: Unity.Localization} data: diff --git a/Assets/Language/Dialog/FP_Prologue/FP_Prologue_zh-Hans.asset b/Assets/Language/Dialog/FP_Prologue/FP_Prologue_zh-Hans.asset index cd453aa38..4290cd361 100644 --- a/Assets/Language/Dialog/FP_Prologue/FP_Prologue_zh-Hans.asset +++ b/Assets/Language/Dialog/FP_Prologue/FP_Prologue_zh-Hans.asset @@ -579,11 +579,11 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 1487731321634816 - m_Localized: "\u6267\u884C\u5207\u9664\u6A21\u5757" + m_Localized: "\u6267\u884C\u6A21\u5757\u5207\u9664" m_Metadata: m_Items: [] - m_Id: 1487731279691776 - m_Localized: "\u6267\u884C\u5207\u9664\u6A21\u5757" + m_Localized: "\u6267\u884C\u6A21\u5757\u5207\u9664" m_Metadata: m_Items: [] - m_Id: 1487731321634819 @@ -607,7 +607,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 1487731321634817 - m_Localized: "\u6267\u884C\u5207\u9664\u6A21\u5757" + m_Localized: "\u6267\u884C\u6A21\u5757\u5207\u9664" m_Metadata: m_Items: [] - m_Id: 30120683173318656 @@ -626,6 +626,14 @@ MonoBehaviour: m_Localized: "\u903B\u8F91" m_Metadata: m_Items: [] + - m_Id: 53970478019121152 + m_Localized: "\u9009\u98791" + m_Metadata: + m_Items: [] + - m_Id: 53970478052675584 + m_Localized: "\u9009\u98792" + m_Metadata: + m_Items: [] references: version: 2 RefIds: [] diff --git a/Assets/Language/UIText/UIText Shared Data.asset b/Assets/Language/UIText/UIText Shared Data.asset index c79ea1284..531bdd417 100644 --- a/Assets/Language/UIText/UIText Shared Data.asset +++ b/Assets/Language/UIText/UIText Shared Data.asset @@ -203,6 +203,10 @@ MonoBehaviour: m_Key: chapter_continue m_Metadata: m_Items: [] + - m_Id: 73229033469382656 + m_Key: setting_textSpeed_slow + m_Metadata: + m_Items: [] m_Metadata: m_Items: [] m_KeyGenerator: diff --git a/Assets/Language/UIText/UIText_en.asset b/Assets/Language/UIText/UIText_en.asset index 905294d45..327f78d90 100644 --- a/Assets/Language/UIText/UIText_en.asset +++ b/Assets/Language/UIText/UIText_en.asset @@ -85,7 +85,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 22296675749900 - m_Localized: WINDOW MODE + m_Localized: SCREEN MODE m_Metadata: m_Items: [] - m_Id: 22296675749901 @@ -220,6 +220,10 @@ MonoBehaviour: m_Localized: Continue m_Metadata: m_Items: [] + - m_Id: 73229033469382656 + m_Localized: SLOW + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/Language/UIText/UIText_zh-Hans.asset b/Assets/Language/UIText/UIText_zh-Hans.asset index 1f4ffad6b..df174b5f0 100644 --- a/Assets/Language/UIText/UIText_zh-Hans.asset +++ b/Assets/Language/UIText/UIText_zh-Hans.asset @@ -89,7 +89,7 @@ MonoBehaviour: m_Metadata: m_Items: [] - m_Id: 22296675749900 - m_Localized: "\u7A97\u53E3\u6A21\u5F0F" + m_Localized: "\u5C4F\u5E55\u6A21\u5F0F" m_Metadata: m_Items: [] - m_Id: 22296675749901 @@ -209,6 +209,10 @@ MonoBehaviour: m_Metadata: m_Items: - rid: 7917695939544875419 + - m_Id: 73229033469382656 + m_Localized: "\u6162\u901F" + m_Metadata: + m_Items: [] references: version: 2 RefIds: diff --git a/Assets/RawResources/Icon/Peipeiicon.png b/Assets/RawResources/Icon/Peipeiicon.png deleted file mode 100644 index e21291a24..000000000 --- a/Assets/RawResources/Icon/Peipeiicon.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e8f8de00d0bf16276ed9d5523767bc761d5a0f2eba47091a8fb2cc8c4da52dad -size 1173632 diff --git a/Assets/RawResources/Icon/Peipeiicon.png.meta b/Assets/RawResources/Icon/Peipeiicon.png.meta deleted file mode 100644 index 8a4e24d0e..000000000 --- a/Assets/RawResources/Icon/Peipeiicon.png.meta +++ /dev/null @@ -1,153 +0,0 @@ -fileFormatVersion: 2 -guid: b939a31a2f1b6524982f857bf92bf218 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 12 - 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: 0 - 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: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 0 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: WebGL - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - ignorePlatformSupport: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - 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: 3 - 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 - - serializedVersion: 3 - buildTarget: Server - 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: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: 5e97eb03825dee720800000000000000 - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - mipmapLimitGroupName: - pSDRemoveMatte: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Render/Renderer2Dtest.asset b/Assets/Render/Renderer2Dtest.asset index 29988c156..fdae0d5da 100644 --- a/Assets/Render/Renderer2Dtest.asset +++ b/Assets/Render/Renderer2Dtest.asset @@ -463,18 +463,15 @@ MonoBehaviour: m_PostInfinity: 2 m_RotationOrder: 4 _filter: - - 0.004854369 - - 0.021177985 - - 0.06010355 - - 0.106563106 - - 0.14548868 - - 0.1618123 - - 0.1618123 - - 0.14548868 - - 0.106563106 - - 0.06010355 - - 0.021177985 - - 0.004854369 + - 0.007228916 + - 0.043749984 + - 0.12409639 + - 0.20444278 + - 0.24096388 + - 0.20444278 + - 0.12409639 + - 0.043749984 + - 0.007228916 --- !u!114 &-6086986437317696584 MonoBehaviour: m_ObjectHideFlags: 3 diff --git a/Assets/Resources/Yarn/FP_Prologue/Stage1_开灯.yarn b/Assets/Resources/Yarn/FP_Prologue/Stage1_开灯.yarn index 483417865..f47f1cc48 100644 --- a/Assets/Resources/Yarn/FP_Prologue/Stage1_开灯.yarn +++ b/Assets/Resources/Yarn/FP_Prologue/Stage1_开灯.yarn @@ -22,7 +22,6 @@ position: 250,200 <> <> 我知道我不应该在这里,
但是在醒来之前,我还有很多时间。 #line:0e3b3ba - <> <> diff --git a/Assets/Scenes/Persistence.unity b/Assets/Scenes/Persistence.unity index e2e33069e..c3997f7ac 100644 --- a/Assets/Scenes/Persistence.unity +++ b/Assets/Scenes/Persistence.unity @@ -493,7 +493,7 @@ MonoBehaviour: styleSheet: {fileID: 0} databaseActions: {fileID: 11400000, guid: de78232a60d74f6459e57e5606304209, type: 2} defaultAppearancesTags: - - 'fade ' + - step defaultDisappearancesTags: - fade defaultBehaviorsTags: [] @@ -521,7 +521,7 @@ MonoBehaviour: m_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC\u652F\u6301\u5BCC\u6587\u672C" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: c7fc4cbba4b38a04c8985d4dbce12a73, type: 2} - m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_sharedMaterial: {fileID: -5947736473428621296, guid: c7fc4cbba4b38a04c8985d4dbce12a73, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] @@ -584,7 +584,7 @@ MonoBehaviour: m_margin: {x: 0, y: 0, z: 0, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_hasFontAssetChanged: 1 + m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!222 &27659202 @@ -1559,195 +1559,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 85815d386fde43dca8b4be1cfd26fe89, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &71838975 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 781740447} - m_Modifications: - - target: {fileID: 215275187407609090, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 704217432, guid: 3fb22d1d71379f54f8dec756b08e3307, type: 3} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMin.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_SizeDelta.x - value: 453.11 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_SizeDelta.y - value: 70.009995 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchoredPosition.y - value: -300 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3741179239662950829, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4083462688583332915, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Padding.m_Top - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 4083462688583332915, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Padding.m_Left - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 4083462688583332915, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Padding.m_Right - value: 15 - objectReference: {fileID: 0} - - target: {fileID: 4083462688583332915, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Padding.m_Bottom - value: 10 - objectReference: {fileID: 0} - - target: {fileID: 4698362591619572577, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_MinWidth - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5463321828217487701, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5463321828217487701, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5463321828217487701, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_SizeDelta.x - value: 433.11 - objectReference: {fileID: 0} - - target: {fileID: 5463321828217487701, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_SizeDelta.y - value: 50.01 - objectReference: {fileID: 0} - - target: {fileID: 5463321828217487701, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchoredPosition.x - value: 221.555 - objectReference: {fileID: 0} - - target: {fileID: 5463321828217487701, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchoredPosition.y - value: -60.01 - objectReference: {fileID: 0} - - target: {fileID: 8272198623999747867, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8272198623999747867, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8272198623999747867, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_SizeDelta.x - value: 64.01 - objectReference: {fileID: 0} - - target: {fileID: 8272198623999747867, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_SizeDelta.y - value: 32.01 - objectReference: {fileID: 0} - - target: {fileID: 8272198623999747867, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchoredPosition.x - value: 52.005005 - objectReference: {fileID: 0} - - target: {fileID: 8272198623999747867, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_AnchoredPosition.y - value: -36.004997 - objectReference: {fileID: 0} - - target: {fileID: 8352794458094198668, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_Name - value: Bubble - objectReference: {fileID: 0} - - target: {fileID: 8352794458094198668, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8947926204029201251, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: testMaxWidth - value: -1 - objectReference: {fileID: 0} - - target: {fileID: 8947926204029201251, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: testPivotType - value: 8 - objectReference: {fileID: 0} - - target: {fileID: 8947926204029201251, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - propertyPath: testBubbleStyle - value: - objectReference: {fileID: 11400000, guid: e5e5761693b62ef4891f7f08ec8bcbd8, type: 2} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} --- !u!1 &72512885 GameObject: m_ObjectHideFlags: 0 @@ -1778,7 +1589,6 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1584263514} - {fileID: 1936621685} m_Father: {fileID: 1009826577} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1794,8 +1604,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8912c53f0d9943940a6bb7e59888ada8, type: 3} m_Name: m_EditorClassIdentifier: - quickRunMode: 0 - autoRunMode: 0 + lineAdvanceInput: {fileID: 1977401368} + isInOption: 0 --- !u!1 &77816930 GameObject: m_ObjectHideFlags: 0 @@ -4886,14 +4696,12 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 238296902} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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: 781740447} - - {fileID: 1612148020} - m_Father: {fileID: 1604842429} + m_Children: [] + m_Father: {fileID: 1829169896} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -4912,6 +4720,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a76234ef7ee34400b306a4823081ba62, type: 3} m_Name: m_EditorClassIdentifier: + widthEstimation: {fileID: 1318260399} + centerBubble: {fileID: 1403558896} --- !u!1 &246580517 GameObject: m_ObjectHideFlags: 0 @@ -5740,6 +5550,160 @@ MonoBehaviour: m_EditorClassIdentifier: objWidth: 700 objHeight: 550 +--- !u!1001 &309628996 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 430924359} + m_Modifications: + - target: {fileID: 27177156846382951, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_SizeDelta.x + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 1032211294988139403, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_StringReference.m_TableEntryReference.m_KeyId + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1032211294988139403, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_StringReference.m_TableReference.m_TableCollectionName + value: GUID:994c69bf4b2403043bc9562f2d24ee56 + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: prop + value: TextSpeed + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: label + value: setting_textSpeed + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: options.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: options.Array.data[0].prop + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: options.Array.data[1].prop + value: 1.0 + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: options.Array.data[2].prop + value: 3.0 + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: options.Array.data[0].label + value: setting_textSpeed_slow + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: options.Array.data[1].label + value: setting_textSpeed_default + objectReference: {fileID: 0} + - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: options.Array.data[2].label + value: setting_textSpeed_fast + objectReference: {fileID: 0} + - target: {fileID: 5006247552854995519, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_text + value: "\u6587\u5B57\u901F\u5EA6" + objectReference: {fileID: 0} + - target: {fileID: 5654956763089875896, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_Name + value: Text Speed + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_SizeDelta.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_SizeDelta.y + value: 50 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_AnchoredPosition.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_AnchoredPosition.y + value: -230 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} +--- !u!224 &309628997 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + m_PrefabInstance: {fileID: 309628996} + m_PrefabAsset: {fileID: 0} --- !u!1 &314243161 GameObject: m_ObjectHideFlags: 0 @@ -6447,7 +6411,7 @@ GameObject: - component: {fileID: 367483176} m_Layer: 5 m_Name: Top Bar - m_TagString: Selectable + m_TagString: MainUI m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -6543,7 +6507,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 951630327, guid: ca909870d485bde44b1e652490df203f, type: 3} + m_Sprite: {fileID: 0} m_Type: 1 m_PreserveAspect: 0 m_FillCenter: 1 @@ -6726,11 +6690,58 @@ MonoBehaviour: Data3: 1610383794 Data4: -1468709119 Path: event:/Amb/amb ---- !u!224 &375324529 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1284103664181101717, guid: 1f392e4cea7cf3943a25361ff1d1ff85, type: 3} - m_PrefabInstance: {fileID: 71838975} +--- !u!1 &381795661 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 381795662} + - component: {fileID: 381795663} + m_Layer: 5 + m_Name: Option View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &381795662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 381795661} + 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: 1612148020} + - {fileID: 1586904153} + m_Father: {fileID: 1604842429} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &381795663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 381795661} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56ee480f25a146839afa8ff058ddfc7a, type: 3} + m_Name: + m_EditorClassIdentifier: + defaultOptions: {fileID: 1612148021} + centerOptions: {fileID: 1586904157} --- !u!1 &387773934 GameObject: m_ObjectHideFlags: 0 @@ -7049,6 +7060,7 @@ RectTransform: - {fileID: 1865858738} - {fileID: 2395518499295578437} - {fileID: 1518372517} + - {fileID: 309628997} m_Father: {fileID: 1937938010} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} @@ -12314,42 +12326,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 773911909} m_CullTransparentMesh: 1 ---- !u!1 &781740446 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 781740447} - m_Layer: 5 - m_Name: Bubbles - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &781740447 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 781740446} - 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: 375324529} - m_Father: {fileID: 238296903} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &788983287 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 2261302370767925378, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} @@ -18590,7 +18566,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1604842429} + m_Father: {fileID: 1829169896} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -20191,18 +20167,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1403558892} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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: 27659198} - m_Father: {fileID: 1604842429} + m_Father: {fileID: 1829169896} 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_SizeDelta: {x: 1820.0001, y: 980.2295} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1403558895 CanvasRenderer: @@ -20221,9 +20197,10 @@ MonoBehaviour: m_GameObject: {fileID: 1403558892} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d6722100b986b0f42994441d3c0aa9e7, type: 3} + m_Script: {fileID: 11500000, guid: 67e53e476f874efd9d847b50dc16d6c8, type: 3} m_Name: m_EditorClassIdentifier: + dialogText: {fileID: 27659199} --- !u!1 &1411435708 GameObject: m_ObjectHideFlags: 0 @@ -21188,6 +21165,14 @@ PrefabInstance: propertyPath: m_SizeDelta.x value: 180 objectReference: {fileID: 0} + - target: {fileID: 1032211294988139403, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_StringReference.m_TableEntryReference.m_KeyId + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1032211294988139403, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} + propertyPath: m_StringReference.m_TableReference.m_TableCollectionName + value: GUID:994c69bf4b2403043bc9562f2d24ee56 + objectReference: {fileID: 0} - target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} propertyPath: options.Array.size value: 2 @@ -21278,7 +21263,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} propertyPath: m_AnchoredPosition.y - value: -190 + value: -150 objectReference: {fileID: 0} - target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -21866,50 +21851,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1563634750} m_CullTransparentMesh: 1 ---- !u!1 &1584263513 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1584263514} - - component: {fileID: 1584263515} - m_Layer: 0 - m_Name: Line View - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1584263514 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1584263513} - serializedVersion: 2 - 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: 72512886} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1584263515 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1584263513} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 465bacc132ec6ce4e85f8e68354f60ad, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &1586904152 GameObject: m_ObjectHideFlags: 0 @@ -21924,7 +21865,7 @@ GameObject: - component: {fileID: 1586904156} - component: {fileID: 1586904157} m_Layer: 5 - m_Name: Center Option + m_Name: Center Options m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -21937,12 +21878,12 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1586904152} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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: 1604842429} + m_Father: {fileID: 381795662} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -22022,10 +21963,10 @@ MonoBehaviour: m_GameObject: {fileID: 1586904152} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 144fae82f06c3c248b4fb76f6823baba, type: 3} + m_Script: {fileID: 11500000, guid: 8b56b42b68f74c719dd5f36a4696d61b, type: 3} m_Name: m_EditorClassIdentifier: - choiceButtonPrefab: {fileID: 2831695685783823246, guid: 7b38c32597bbad84e92958938ef655dd, type: 3} + choiceButtonPrefab: {fileID: 659956759807646603, guid: 4973083c3562511409a2ff2639fbe31b, type: 3} --- !u!1001 &1592246586 PrefabInstance: m_ObjectHideFlags: 0 @@ -22393,7 +22334,8 @@ GameObject: - component: {fileID: 1604842428} - component: {fileID: 1604842427} - component: {fileID: 1604842426} - - component: {fileID: 1604842430} + - component: {fileID: 1604842431} + - component: {fileID: 1604842432} m_Layer: 5 m_Name: Dialog Canvas m_TagString: Untagged @@ -22476,10 +22418,9 @@ RectTransform: m_LocalScale: {x: 0, y: 0, z: 0} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1318260398} - - {fileID: 1586904153} - - {fileID: 1403558893} - - {fileID: 238296903} + - {fileID: 381795662} + - {fileID: 1829169896} + - {fileID: 1977401367} m_Father: {fileID: 1110722291} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -22487,7 +22428,7 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} ---- !u!114 &1604842430 +--- !u!114 &1604842431 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -22496,13 +22437,23 @@ MonoBehaviour: m_GameObject: {fileID: 1604842425} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c14c52217dac70244b02fe48d9462bae, type: 3} + m_Script: {fileID: 11500000, guid: a38dd6a979b842b280fb73c921999a69, type: 3} m_Name: m_EditorClassIdentifier: - widthEstimation: {fileID: 1318260399} - blockDuration: 0.5 - autoSkipDelay: 1 - autoHideDuration: 0.2 + lineView: {fileID: 1829169897} + optionView: {fileID: 381795663} +--- !u!225 &1604842432 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604842425} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1 &1605070473 GameObject: m_ObjectHideFlags: 0 @@ -22989,8 +22940,9 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1612148020} + - component: {fileID: 1612148021} m_Layer: 5 - m_Name: Options + m_Name: Default Options m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -23003,7 +22955,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1612148019} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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 @@ -23012,13 +22964,25 @@ RectTransform: - {fileID: 515401844} - {fileID: 2033425616} - {fileID: 432383798} - m_Father: {fileID: 238296903} + m_Father: {fileID: 381795662} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1612148021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1612148019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 14d86fd6c1664941a0c693acb51c6b4b, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1620453319 GameObject: m_ObjectHideFlags: 0 @@ -23402,6 +23366,7 @@ GameObject: - component: {fileID: 1655147933} - component: {fileID: 1655147932} - component: {fileID: 1655147931} + - component: {fileID: 1655147934} m_Layer: 0 m_Name: EventSystem m_TagString: Untagged @@ -23459,6 +23424,19 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1655147934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1655147930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f55689aa6dac4461bba273d8987762dd, type: 3} + m_Name: + m_EditorClassIdentifier: + isLocked: 0 --- !u!1 &1689237971 GameObject: m_ObjectHideFlags: 0 @@ -24811,6 +24789,60 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1804770167} m_CullTransparentMesh: 1 +--- !u!1 &1829169895 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1829169896} + - component: {fileID: 1829169897} + m_Layer: 5 + m_Name: Line View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1829169896 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829169895} + 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: 1318260398} + - {fileID: 1403558893} + - {fileID: 238296903} + m_Father: {fileID: 1604842429} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1829169897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1829169895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f0d1630fcebe4fb38afd0a2bc7b3112b, type: 3} + m_Name: + m_EditorClassIdentifier: + lineViewTypes: 000000000500000002000000 + advanceInput: {fileID: 1977401368} + bubbleGroup: {fileID: 238296904} --- !u!1 &1846916304 GameObject: m_ObjectHideFlags: 0 @@ -25460,7 +25492,8 @@ MonoBehaviour: yarnProject: {fileID: 0} _variableStorage: {fileID: 314243163} dialogueViews: - - {fileID: 1584263515} + - {fileID: 1829169897} + - {fileID: 381795663} startNode: Start startAutomatically: 0 runSelectedOptionAsLine: 0 @@ -26182,6 +26215,54 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1970860740} m_CullTransparentMesh: 1 +--- !u!1 &1977401366 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1977401367} + - component: {fileID: 1977401368} + m_Layer: 5 + m_Name: Line Advance Input + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1977401367 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977401366} + 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: 1604842429} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1977401368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1977401366} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4269da1f8c364e319da84b5fee61bafe, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1982630668 GameObject: m_ObjectHideFlags: 0 @@ -44561,7 +44642,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 305064715333190683, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3} propertyPath: m_AnchoredPosition.y - value: -110 + value: -70 objectReference: {fileID: 0} - target: {fileID: 305064715333190683, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -44595,6 +44676,14 @@ PrefabInstance: propertyPath: m_SizeDelta.x value: 18.68 objectReference: {fileID: 0} + - target: {fileID: 6550843177228825060, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3} + propertyPath: m_StringReference.m_TableEntryReference.m_KeyId + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6550843177228825060, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3} + propertyPath: m_StringReference.m_TableReference.m_TableCollectionName + value: GUID:994c69bf4b2403043bc9562f2d24ee56 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/Scripts/Dialog System/BaseYarnCommand.cs b/Assets/Scripts/Dialog System/BaseYarnCommand.cs index ed86a73dd..1bf5e48b2 100644 --- a/Assets/Scripts/Dialog System/BaseYarnCommand.cs +++ b/Assets/Scripts/Dialog System/BaseYarnCommand.cs @@ -55,7 +55,7 @@ namespace AibisDream [YarnCommand("hide_dialog")] public static void HideDialog() { - DialogCanvasManager.Instance.HideDialog(); + BubbleGroup.Instance.HideDialog(); } [YarnCommand("fade_in")] @@ -135,13 +135,6 @@ namespace AibisDream return panel.FlashRed(duration); } - [YarnCommand("switch_dialog_viewer")] - public static void SwitchDialogViewer(string viewerTypeStr) - { - var viewType = Enum.Parse(viewerTypeStr); - DialogCanvasManager.Instance.SwitchDialogView(viewType); - } - #endregion } } \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/DialogController.cs b/Assets/Scripts/Dialog System/DialogController.cs index 3f231c50b..f8d0ba875 100644 --- a/Assets/Scripts/Dialog System/DialogController.cs +++ b/Assets/Scripts/Dialog System/DialogController.cs @@ -2,7 +2,6 @@ using System; using AibisDream.Framework; using AibisDream.Kit; using UnityEngine; -using UnityEngine.Events; using Yarn.Unity; namespace AibisDream @@ -12,15 +11,7 @@ namespace AibisDream private DialogueRunner _dialogueRunner; private LocalisedLineProvider _lineProvider; - # region controller状态标识 - - public bool quickRunMode; - public bool autoRunMode; - - # endregion - - public static UnityAction OnDialogueStart; - public static UnityAction OnDialogueComplete; + [SerializeField] private LineAdvanceInput lineAdvanceInput; private void Start() { @@ -29,16 +20,47 @@ namespace AibisDream _dialogueRunner.onDialogueStart.AddListener(() => { - EnumEventSystem.Global.Send(InteractionEventEnum.End); - OnDialogueStart?.Invoke(); + EnumEventSystem.Global.Send(InteractionEventEnum.DialogStart); }); _dialogueRunner.onDialogueComplete.AddListener(() => { - EnumEventSystem.Global.Send(InteractionEventEnum.Start); - OnDialogueComplete?.Invoke(); + EnumEventSystem.Global.Send(InteractionEventEnum.DialogEnd); }); } + private void OnEnable() + { + EnumEventSystem.Global.Register(GameLoopEnum.GameStart, ResetAdvanceMode); + + EnumEventSystem.Global.Register(DialogEventEnum.OptionShow, OnOptionShow); + EnumEventSystem.Global.Register(DialogEventEnum.OptionSelected, OnOptionSelected); + } + + private void OnDisable() + { + EnumEventSystem.Global.UnRegister(GameLoopEnum.GameStart, ResetAdvanceMode); + + EnumEventSystem.Global.UnRegister(DialogEventEnum.OptionShow, OnOptionShow); + EnumEventSystem.Global.UnRegister(DialogEventEnum.OptionSelected, OnOptionSelected); + } + + private void ResetAdvanceMode() + { + advanceMode = new AdvanceMode + { + isAuto = false, + isQuick = false + }; + + isInOption = false; + lineSyncToken = null; + + Time.timeScale = 1f; + lineAdvanceInput.ResetAdvanceMode(); + } + + #region Yarn控制 + /// /// 开启对话 /// @@ -50,17 +72,11 @@ namespace AibisDream _dialogueRunner.StartDialogue("Start"); } - public string GetCurLocalizedTableName() - { - return _lineProvider.GetStringTableName(); - } - public void StopDialog() { _dialogueRunner.Stop(); StorageSystem.Instance.Clear(); - DialogCanvasManager.Instance.HideDialog(); - DialogCanvasManager.Instance.SwitchDialogView(DialogViewType.StandardBubble); + DialogUIManager.Instance.HideDialog(); } public void LoadDialog(YarnProject yarnProject) @@ -78,7 +94,7 @@ namespace AibisDream Debug.LogWarning($"对话正在运行中,无法启动新节点: {nodeName}"); return; } - + if (CheckIfNodeExistInCurrentYarnProject(nodeName)) { _dialogueRunner.StartDialogue(nodeName); @@ -100,15 +116,87 @@ namespace AibisDream } } - /// - /// 跳到下一句 - /// - public void JumpLine() + #endregion + + #region 推进方式修改 + + public AdvanceMode advanceMode; + + public void SwitchAutoMode() { - if (!DialogCanvasManager.Instance.TrySkipLine()) + advanceMode.isAuto = !advanceMode.isAuto; + lineAdvanceInput.SwitchAdvanceHandler(advanceMode.CurrentMode); + } + + public void SwitchQuickMode() + { + advanceMode.isQuick = !advanceMode.isQuick; + + lineAdvanceInput.SwitchAdvanceHandler(advanceMode.CurrentMode); + Time.timeScale = advanceMode.CurrentMode == AdvanceModeEnum.Quick ? 8f : 1f; + } + + #endregion + + public LineSyncToken lineSyncToken; + public bool isInOption; + + public LineSyncState GetDialogState() + { + if (lineSyncToken != null && lineSyncToken.state != LineSyncState.Advanced) { - DialogCanvasManager.Instance.NextStep(); + return lineSyncToken.state; + } + else if (isInOption) + { + return LineSyncState.InOption; + } + else + { + return LineSyncState.Default; + } + } + + private void OnOptionShow() + { + isInOption = true; + } + + private void OnOptionSelected(LineInfo lineInfo) + { + isInOption = false; + } + } + + public struct AdvanceMode + { + public bool isAuto; + public bool isQuick; + + public AdvanceModeEnum CurrentMode + { + get + { + if (isQuick) + { + return AdvanceModeEnum.Quick; + } + else if (isAuto) + { + return AdvanceModeEnum.Auto; + } + else + { + return AdvanceModeEnum.Default; + } } } } + + public enum AdvanceModeEnum + { + Default, + Auto, + Quick + } } \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineAdvanceInput.cs b/Assets/Scripts/Dialog System/LineAdvanceInput.cs new file mode 100644 index 000000000..f139b7abf --- /dev/null +++ b/Assets/Scripts/Dialog System/LineAdvanceInput.cs @@ -0,0 +1,143 @@ +using System; +using AibisDream.Framework; +using UnityEngine; + +namespace AibisDream +{ + public class LineAdvanceInput : MonoBehaviour + { + #region 状态 + + private LineSyncToken _curSyncToken; + + private ILineAdvanceHandler _handler; + + #endregion + + private ILineAdvanceHandler _defaultHandler = new DefaultAdvanceHandler(); + private ILineAdvanceHandler _quickHandler = new QuickAdvanceHandler(); + private ILineAdvanceHandler _autoHandler = new AutoAdvanceHandler(); + + private void OnEnable() + { + ResetAdvanceMode(); + } + + public void RunLine(LineSyncToken lineSyncEvent) + { + _curSyncToken = lineSyncEvent; + } + + private void Update() + { + + _handler.Handle(_curSyncToken, IsInputAvailable); + } + + public void SwitchAdvanceHandler(AdvanceModeEnum advanceMode) + { + _handler = advanceMode switch + { + AdvanceModeEnum.Auto => _autoHandler, + AdvanceModeEnum.Quick => _quickHandler, + AdvanceModeEnum.Default => _defaultHandler, + _ => _defaultHandler, + }; + } + + public void ResetAdvanceMode() + { + _handler = _defaultHandler; + } + + #region 输入事件处理 + + private bool IsInputAvailable() + { + return GameManager.Instance.state.IsInputAvailable() + && _curSyncToken != null + && _curSyncToken.state != LineSyncState.Advanced; + } + + #endregion + } + + public interface ILineAdvanceHandler + { + void Handle(LineSyncToken token, Func isAvailable); + + static ILineAdvanceHandler Create(bool autoMode) + { + return autoMode ? new AutoAdvanceHandler() : new DefaultAdvanceHandler(); + } + } + + public class DefaultAdvanceHandler : ILineAdvanceHandler + { + public void Handle(LineSyncToken token, Func isAvailable) + { + if (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space)) + { + if (isAvailable()) + { + HandleInput(token); + } + } + } + + private void HandleInput(LineSyncToken token) + { + switch (token.state) + { + case LineSyncState.PlayText: + token.TrySkip(); + break; + case LineSyncState.WaitForAdvance: + token.TryAdvance(); + break; + case LineSyncState.WaitForAutoAdvance: + token.TryAdvance(); + break; + } + } + } + + public class AutoAdvanceHandler : ILineAdvanceHandler + { + public void Handle(LineSyncToken token, Func isAvailable) + { + if (!isAvailable()) + { + return; + } + + // 如果已经可以继续了,就直接往下 + if (token.state == LineSyncState.WaitForAutoAdvance) + { + token.TryAdvance(); + } + } + } + + public class QuickAdvanceHandler : ILineAdvanceHandler + { + public void Handle(LineSyncToken token, Func isAvailable) + { + if (!isAvailable()) + { + return; + } + + // 加速模式强制快进 + if (token.state == LineSyncState.PlayText) + { + token.TrySkip(); + } + // 如果已经可以继续了,就直接往下 + if (token.state is LineSyncState.AdvanceDelay or LineSyncState.WaitForAdvance or LineSyncState.WaitForAutoAdvance) + { + token.ForceAdvance(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineAdvanceInput.cs.meta b/Assets/Scripts/Dialog System/LineAdvanceInput.cs.meta new file mode 100644 index 000000000..74616b9c8 --- /dev/null +++ b/Assets/Scripts/Dialog System/LineAdvanceInput.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4269da1f8c364e319da84b5fee61bafe +timeCreated: 1761032421 \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineRunner.cs b/Assets/Scripts/Dialog System/LineRunner.cs new file mode 100644 index 000000000..ba6188b64 --- /dev/null +++ b/Assets/Scripts/Dialog System/LineRunner.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using AibisDream.Utility; +using UnityEngine; +using Yarn.Unity; + +namespace AibisDream +{ + public class LineRunner : DialogueViewBase + { + [SerializeField] private DialogViewType[] lineViewTypes; + [SerializeField] private LineAdvanceInput advanceInput; + [SerializeField] private BubbleGroup bubbleGroup; + + private readonly Dictionary _screenViewDict = new(); + + public override void RunLine(LocalizedLine dialogueLine, Action onDialogueLineFinished) + { + LineSyncToken lineSyncEvent; + if (dialogueLine.GetCharacterVo().dialogViewType == DialogViewType.Screen) + { + // 自动推进视图 + lineSyncEvent = LineSyncToken.CreateAuto(dialogueLine, onDialogueLineFinished); + DialogController.Instance.lineSyncToken = lineSyncEvent; + if (_screenViewDict.TryGetValue(DialogViewType.Screen, out var view)) + { + view.RunLine(lineSyncEvent); + } + else + { + Debug.LogWarning($"未注册的视图类型: {dialogueLine.GetCharacterVo().dialogViewType}"); + } + } + else if (dialogueLine.GetCharacterVo().dialogViewType == DialogViewType.Task) + { + lineSyncEvent = LineSyncToken.CreateImmediate(dialogueLine, onDialogueLineFinished); + DialogController.Instance.lineSyncToken = lineSyncEvent; + if (_screenViewDict.TryGetValue(DialogViewType.Task, out var view)) + { + view.RunLine(lineSyncEvent); + } + else + { + Debug.LogWarning($"未注册的视图类型: {dialogueLine.GetCharacterVo().dialogViewType}"); + } + } + else + { + // 手动推进视图 + lineSyncEvent = LineSyncToken.CreateDefault(dialogueLine, onDialogueLineFinished); + DialogController.Instance.lineSyncToken = lineSyncEvent; + bubbleGroup.RunLine(lineSyncEvent); + } + + // 最后交给推进处理 + advanceInput.RunLine(lineSyncEvent); + } + + public void RegisterView(DialogViewType dialogViewType, ILineView view) + { + _screenViewDict.Add(dialogViewType, view); + } + + public void UnRegisterView(DialogViewType dialogViewType) + { + _screenViewDict.Remove(dialogViewType); + } + } + + public interface ILineView + { + void RunLine(LineSyncToken token); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineRunner.cs.meta b/Assets/Scripts/Dialog System/LineRunner.cs.meta new file mode 100644 index 000000000..454f67899 --- /dev/null +++ b/Assets/Scripts/Dialog System/LineRunner.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f0d1630fcebe4fb38afd0a2bc7b3112b +timeCreated: 1761032402 \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineSyncToken.cs b/Assets/Scripts/Dialog System/LineSyncToken.cs new file mode 100644 index 000000000..73cd73c1e --- /dev/null +++ b/Assets/Scripts/Dialog System/LineSyncToken.cs @@ -0,0 +1,220 @@ +using System; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using AibisDream.Framework; +using AibisDream.Kit; +using AibisDream.Utility; +using UnityEngine; +using Yarn.Unity; + +namespace AibisDream +{ + public class LineSyncToken + { + private Action _nextStep; + private readonly ITextShown _textShown; + + public LineInfo lineInfo; + public LineSyncState state; + public CancellationTokenSource AdvanceDelayToken { get; private set; } + + public event Action SkipTextAnima; + public event Action OnAdvance; + + public static LineSyncToken CreateAuto(LocalizedLine lineInfo, Action nextStep) + { + return new LineSyncToken(lineInfo, nextStep, new AutoNextTextShown()); + } + + public static LineSyncToken CreateImmediate(LocalizedLine lineInfo, Action nextStep) + { + return new LineSyncToken(lineInfo, nextStep, new ImmediateTextShown()); + } + + public static LineSyncToken CreateDefault(LocalizedLine lineInfo, Action nextStep) + { + return new LineSyncToken(lineInfo, nextStep, new DefaultTextShown()); + } + + public LineSyncToken(LocalizedLine lineInfo, Action nextStep, ITextShown textShown) + { + this.lineInfo = LineInfo.Generate(lineInfo); + _nextStep = nextStep; + _textShown = textShown; + } + + public void TrySkip() + { + if (state == LineSyncState.PlayText) + { + SkipTextAnima?.Invoke(); + SkipTextAnima = null; + } + else + { + Debug.Log($"line{lineInfo.lineId} 状态为{state}, 不能跳过文本"); + } + } + + public void TryAdvance() + { + if (state == LineSyncState.WaitForAdvance || state == LineSyncState.WaitForAutoAdvance) + { + Advance(); + Dispose(); + } + else + { + Debug.Log($"line{lineInfo.lineId} 状态为{state}, 不能向前推进"); + } + } + + public void ForceAdvance() + { + if (state != LineSyncState.Advanced) + { + // 先中断延时 + AdvanceDelayToken?.Cancel(); + // 推进 + Advance(); + Dispose(); + } + } + + private void Advance() + { + EnumEventSystem.Global.Send(DialogEventEnum.LineEnd); + OnAdvance?.Invoke(); + OnAdvance = null; + _nextStep?.Invoke(); + state = LineSyncState.Advanced; + } + + private void Dispose() + { + _nextStep = null; + SkipTextAnima = null; + } + + public async void TextShown() + { + AdvanceDelayToken = new CancellationTokenSource(); + EnumEventSystem.Global.Send(DialogEventEnum.LineShown); + await _textShown.OnTextShown(this); + } + + public void TextStart() + { + if (state != LineSyncState.Default) + { + Debug.LogWarning($"line{lineInfo.lineId} 状态为{state}, 不能开始文本"); + return; + } + state = LineSyncState.PlayText; + EnumEventSystem.Global.Send(DialogEventEnum.LineStart, lineInfo); + } + } + + public struct LineInfo + { + public string lineId; + public string lineText; + public CharacterVo character; + public bool isAutoSkip; + public bool isOption; + + public static LineInfo Generate(LocalizedLine dialogueLine) + { + return new LineInfo + { + lineId = dialogueLine.TextID, + lineText = dialogueLine.TextWithoutCharacterName.Text, + character = dialogueLine.GetCharacterVo(), + isAutoSkip = dialogueLine.IsAutoSkipLine(), + isOption = false + }; + } + + public string GetRecordLine() + { + const string allowedTagsPattern = @"(<|{)(?!\/?(b|i|color)(?=>|\s|=))[^(>|})]+(>|})"; + var res = Regex.Replace(lineText, allowedTagsPattern, ""); + return res; + } + + public int CalcAutoDelayTime() + { + var delayTime = lineText.RemoveRichTextTags().Length * ConstRef.CharacterDelayTime; + return CommonUtil.Limit(delayTime, ConstRef.LineMaxDelay, ConstRef.LineMinDelay); + } + + public int CalcDelayTime() + { + return ConstRef.FixedDelay; + } + } + + public interface ITextShown + { + Task OnTextShown(LineSyncToken token); + } + + public class DefaultTextShown : ITextShown + { + public async Task OnTextShown(LineSyncToken token) + { + try + { + token.state = LineSyncState.AdvanceDelay; + await Task.Delay(token.lineInfo.CalcDelayTime(), token.AdvanceDelayToken.Token); + token.state = LineSyncState.WaitForAdvance; + await Task.Delay(token.lineInfo.CalcAutoDelayTime(), token.AdvanceDelayToken.Token); + token.state = LineSyncState.WaitForAutoAdvance; + } + catch (TaskCanceledException) + { + // 跳过,无事发生 + } + } + } + + public class AutoNextTextShown : ITextShown + { + public async Task OnTextShown(LineSyncToken token) + { + try + { + token.state = LineSyncState.AdvanceDelay; + await Task.Delay(token.lineInfo.CalcDelayTime(), token.AdvanceDelayToken.Token); + token.state = LineSyncState.WaitForAutoAdvance; + token.TryAdvance(); + } + catch (TaskCanceledException) + { + // 跳过,无事发生 + } + } + } + + public class ImmediateTextShown : ITextShown + { + public async Task OnTextShown(LineSyncToken token) + { + token.state = LineSyncState.WaitForAdvance; + } + } + + public enum LineSyncState + { + Default, + PlayText, + AdvanceDelay, + WaitForAdvance, + WaitForAutoAdvance, + Advanced, + + // 仅限DialogController使用 + InOption + } +} \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineSyncToken.cs.meta b/Assets/Scripts/Dialog System/LineSyncToken.cs.meta new file mode 100644 index 000000000..36059b909 --- /dev/null +++ b/Assets/Scripts/Dialog System/LineSyncToken.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fc70491af0c642d28147d3dbf6a70ca6 +timeCreated: 1761551427 \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineView.cs b/Assets/Scripts/Dialog System/LineView.cs deleted file mode 100644 index 06345a8c5..000000000 --- a/Assets/Scripts/Dialog System/LineView.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using AibisDream.Framework; -using AibisDream.Utility; -using UnityEngine; -using Yarn.Unity; - -namespace AibisDream -{ - public class LineView : DialogueViewBase - { - public override void RunLine(LocalizedLine dialogueLine, Action onDialogueLineFinished) - { - string lineId = dialogueLine.TextID; - string shortText = dialogueLine.TextWithoutCharacterName.Text.Length > 30 - ? dialogueLine.TextWithoutCharacterName.Text.Substring(0, 30) + "..." - : dialogueLine.TextWithoutCharacterName.Text; - - Debug.Log($"[对话流程] [{lineId}] ===== 开始处理 ====="); - Debug.Log($"[对话流程] [{lineId}] 文本内容: {shortText}"); - - EnumEventSystem.Global.Send(DialogEventEnum.LineStart, DialogText.GetLine(dialogueLine)); - - HandleLineOutput(dialogueLine, onDialogueLineFinished); - - if (DialogController.Instance.quickRunMode) - { - Debug.Log($"[快速模式] [{lineId}] ===== 快速处理开始 ====="); - - // 快速模式:直接跳过文本显示并继续 - bool skipResult = DialogCanvasManager.Instance.TrySkipLine(true); - Debug.Log($"[快速模式] [{lineId}] TrySkipLine结果: {skipResult}"); - - EnumEventSystem.Global.Send(DialogEventEnum.LineShown); - Debug.Log($"[快速模式] [{lineId}] LineShown事件已发送"); - - DialogCanvasManager.Instance.NextStep(); - Debug.Log($"[快速模式] [{lineId}] NextStep已调用"); - Debug.Log($"[快速模式] [{lineId}] ===== 快速处理完成 ====="); - } - else - { - Debug.Log($"[正常模式] [{lineId}] 等待用户交互"); - } - - Debug.Log($"[对话流程] [{lineId}] ===== 处理完成 ====="); - } - - private void HandleLineOutput(LocalizedLine dialogueLine, Action onDialogueLineFinished) - { - string lineId = dialogueLine.TextID; - Debug.Log($"[文本显示] [{lineId}] 开始显示文本"); - DialogCanvasManager.Instance.ShowLine(dialogueLine.TextWithoutCharacterName.Text, - dialogueLine.GetCharacterVo(), onDialogueLineFinished, dialogueLine.TextID, - dialogueLine.IsAutoSkipLine()); - } - - public override void RunOptions(DialogueOption[] dialogueOptions, Action onOptionSelected) - { - Debug.Log($"[选项显示] ===== 显示 {dialogueOptions.Length} 个选项 ====="); - EnumEventSystem.Global.Send(DialogEventEnum.OptionShow); - var options = DialogOption.GeneOptions(dialogueOptions, onOptionSelected); - DialogCanvasManager.Instance.ShowOptions(options); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/LineView.cs.meta b/Assets/Scripts/Dialog System/LineView.cs.meta deleted file mode 100644 index 3d53b008a..000000000 --- a/Assets/Scripts/Dialog System/LineView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 465bacc132ec6ce4e85f8e68354f60ad -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Dialog System/OptionView.cs b/Assets/Scripts/Dialog System/OptionView.cs new file mode 100644 index 000000000..5e3ac0fad --- /dev/null +++ b/Assets/Scripts/Dialog System/OptionView.cs @@ -0,0 +1,33 @@ +using System; +using AibisDream.Framework; +using UnityEngine; +using Yarn.Unity; + +namespace AibisDream +{ + public class OptionView : DialogueViewBase + { + [SerializeField] private DefaultOptions defaultOptions; + [SerializeField] private CenterOptions centerOptions; + + public override void RunOptions(DialogueOption[] dialogueOptions, Action onOptionSelected) + { + EnumEventSystem.Global.Send(DialogEventEnum.OptionShow); + var options = DialogOption.GeneOptions(dialogueOptions, onOptionSelected); + var viewType = options[0].Character.dialogViewType; + + switch (viewType) + { + case DialogViewType.Default: + defaultOptions.ShowOptions(options); + break; + case DialogViewType.CenterOption: + centerOptions.ShowOptions(options); + break; + default: + Debug.Log($"选项{options[0].Character.key}没有找到选项框"); + break; + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Dialog System/OptionView.cs.meta b/Assets/Scripts/Dialog System/OptionView.cs.meta new file mode 100644 index 000000000..84a27d79d --- /dev/null +++ b/Assets/Scripts/Dialog System/OptionView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 56ee480f25a146839afa8ff058ddfc7a +timeCreated: 1761032377 \ No newline at end of file diff --git a/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs b/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs index bc65decf4..3f9280817 100644 --- a/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs +++ b/Assets/Scripts/FixSystem/Effect/MouseFollowEffect.cs @@ -220,7 +220,7 @@ namespace AibisDream private void RegisterDialogEvents() { // 监听对话结束事件 - DialogController.OnDialogueComplete += OnDialogueComplete; + EnumEventSystem.Global.Register(InteractionEventEnum.DialogEnd, OnDialogueComplete); } /// @@ -250,10 +250,7 @@ namespace AibisDream /// private void OnDestroy() { - if (DialogController.Instance != null) - { - DialogController.OnDialogueComplete -= OnDialogueComplete; - } + EnumEventSystem.Global.UnRegister(InteractionEventEnum.DialogEnd, OnDialogueComplete); } #endregion diff --git a/Assets/Scripts/FixSystemNew/BodyModule/CableSystem.cs b/Assets/Scripts/FixSystemNew/BodyModule/CableSystem.cs index 9aa6f0546..95b333ce4 100644 --- a/Assets/Scripts/FixSystemNew/BodyModule/CableSystem.cs +++ b/Assets/Scripts/FixSystemNew/BodyModule/CableSystem.cs @@ -1,4 +1,5 @@ -using UnityEngine; +using AibisDream.Framework; +using UnityEngine; using DG.Tweening; using AibisDream.Kit; @@ -50,14 +51,14 @@ namespace AibisDream.FixSystem private void OnEnable() { - DialogController.OnDialogueStart += HandleDialogueStart; - DialogController.OnDialogueComplete += HandleDialogueComplete; + EnumEventSystem.Global.Register(InteractionEventEnum.DialogEnd, HandleDialogueComplete); + EnumEventSystem.Global.Register(InteractionEventEnum.DialogStart, HandleDialogueStart); } private void OnDisable() { - DialogController.OnDialogueStart -= HandleDialogueStart; - DialogController.OnDialogueComplete -= HandleDialogueComplete; + EnumEventSystem.Global.UnRegister(InteractionEventEnum.DialogEnd, HandleDialogueComplete); + EnumEventSystem.Global.UnRegister(InteractionEventEnum.DialogStart, HandleDialogueStart); } private void InitComponentRefs() @@ -149,7 +150,6 @@ namespace AibisDream.FixSystem private void HandleDialogueComplete() { - Debug.Log("Dialog End"); isInDialog = false; } diff --git a/Assets/Scripts/FixSystemNew/FixStateMachine.cs b/Assets/Scripts/FixSystemNew/FixStateMachine.cs index de34f7015..4fe5e72b5 100644 --- a/Assets/Scripts/FixSystemNew/FixStateMachine.cs +++ b/Assets/Scripts/FixSystemNew/FixStateMachine.cs @@ -171,7 +171,6 @@ namespace AibisDream.FixSystem // 加载气泡 var data = FixSystemCenter.SystemDic.Get().BubbleSlotGroup.CollectData(); BubbleGroup.Instance.LoadBubbles(data); - DialogCanvasManager.Instance.SwitchDialogView(DialogViewType.StandardBubble); // 开启交互 bodyModuleSystem.EnableSystem(); diff --git a/Assets/Scripts/FixSystemNew/FixSystemCenter.cs b/Assets/Scripts/FixSystemNew/FixSystemCenter.cs index 22f8c2f1c..14bc17fcd 100644 --- a/Assets/Scripts/FixSystemNew/FixSystemCenter.cs +++ b/Assets/Scripts/FixSystemNew/FixSystemCenter.cs @@ -1,10 +1,11 @@ using System; using System.Collections; using AibisDream.Framework; +using AibisDream.Kit; namespace AibisDream.FixSystem { - public class FixSystemCenter : Kit.Singleton + public class FixSystemCenter : Singleton { public FixState CurState => StateMachine.CurState; diff --git a/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs b/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs index 0ed50d71e..2d5915da5 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs @@ -1,24 +1,26 @@ -using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using AibisDream.Framework; -using AibisDream.Kit; using AibisDream.Utility; using DG.Tweening; using Febucci.UI; +using Febucci.UI.Core; using TMPro; using UnityEngine; using UnityEngine.UI; namespace AibisDream.FixSystem { - public class ScreenSystem : MonoBehaviour, IDialogView + public class ScreenSystem : MonoBehaviour, ILineView { #region 索引 [SerializeField] private TMP_Text title; [SerializeField] private RectTransform textRoot; [SerializeField] private TMP_Text textForEstimation; + [SerializeField] private int maxLineNum = 10; + private GameObject _textItemPrefab; private Queue _lineQueue; @@ -26,8 +28,6 @@ namespace AibisDream.FixSystem public TaskScreen TaskScreen { get; private set; } - public int maxLineNum = 10; - #endregion private void Awake() @@ -47,15 +47,15 @@ namespace AibisDream.FixSystem private void Register() { FixSystemCenter.SystemDic.Register(this); - DialogCanvasManager.Instance.RegisterDialogView(DialogViewType.Screen, this); - DialogCanvasManager.Instance.RegisterDialogView(DialogViewType.Task, TaskScreen); + DialogUIManager.Instance.RegisterScreenView(DialogViewType.Screen, this); + DialogUIManager.Instance.RegisterScreenView(DialogViewType.Task, TaskScreen); } private void OnDestroy() { FixSystemCenter.SystemDic.Unregister(); - DialogCanvasManager.Instance.UnregisterDialogView(DialogViewType.Screen); - DialogCanvasManager.Instance.UnregisterDialogView(DialogViewType.Task); + DialogUIManager.Instance.UnRegisterScreenView(DialogViewType.Screen); + DialogUIManager.Instance.UnRegisterScreenView(DialogViewType.Task); } #region 基础功能 @@ -64,7 +64,7 @@ namespace AibisDream.FixSystem { title.text = targetTitle; } - + public void ClearTextScreen() { while (_lineQueue.Count > 0) @@ -72,7 +72,7 @@ namespace AibisDream.FixSystem var text = _lineQueue.Dequeue(); Destroy(text.gameObject); } - + ShowTitle(string.Empty); } @@ -83,85 +83,57 @@ namespace AibisDream.FixSystem #endregion - #region 对话框功能实现 - - public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, string lineId, bool isAutoSkip = false) + public void RunLine(LineSyncToken token) { - Debug.Log($"[ScreenSystem] ShowLine - 原始文本: '{dialogLine}'"); - - if (string.IsNullOrWhiteSpace(dialogLine)) + // 空格延长一点避免报错 + if (string.IsNullOrWhiteSpace(token.lineInfo.lineText)) { - dialogLine = " "; - // Debug.Log("[ScreenSystem] ShowLine - 空文本被替换为空格"); + token.lineInfo.lineText = " "; } - - ShowTitle(character.GetActorName()); + + // 显示标题 + ShowTitle(token.lineInfo.character.GetActorName()); + // 显示文本 + TypewriterCore textItemTypewriter = AddText(token.lineInfo.lineText); + textItemTypewriter.SetTypewriterSpeed(GetTextSpeedValue()); + textItemTypewriter.onTextShowed.AddListener(() => OnTextShown(token, textItemTypewriter)); + token.TextStart(); + // 强制更新布局 + LayoutRebuilder.ForceRebuildLayoutImmediate(textRoot); + } + + private float GetTextSpeedValue() + { + var textSpeedStr = SettingLoader.Instance.TryRead("TextSpeed", out string textSpeed) ? textSpeed : "1"; + return float.TryParse(textSpeedStr, NumberStyles.Float, CultureInfo.InvariantCulture, out float result) ? result : 1f; + } + + private void OnTextShown(LineSyncToken syncToken, TypewriterCore typewriter) + { + typewriter.onTextShowed.RemoveAllListeners(); + syncToken.TextShown(); + } + + private TypewriterByCharacter AddText(string newLine) + { // 生成新文本组件 var textItem = Instantiate(_textItemPrefab, textRoot); var textItemTypewriter = textItem.GetComponent(); // 估算文本高度 - var newLineNum = EstimateLineNum(dialogLine); + var newLineNum = EstimateLineNum(newLine); var oldLineNum = CalcTotalLineNum(); if (newLineNum + oldLineNum > maxLineNum) { Destroy(_lineQueue.Dequeue().gameObject); } _lineQueue.Enqueue(textItemTypewriter); - + // 播放文本 - textItemTypewriter.ShowText(dialogLine); - textItemTypewriter.onTextShowed.AddListener(() => AfterLineShown(textItemTypewriter, nextStep)); - - // 强制更新布局 - LayoutRebuilder.ForceRebuildLayoutImmediate(textRoot); - - Debug.Log($"[ScreenSystem] ShowLine - 文本播放开始,nextStep是否为null: {nextStep == null}"); + textItemTypewriter.ShowText(newLine); + + return textItemTypewriter; } - private void AfterLineShown(TypewriterByCharacter typewriter, Action nextStop) - { - Debug.Log("[ScreenSystem] AfterLineShown - 文本显示完成"); - Debug.Log($"[ScreenSystem] AfterLineShown - nextStop是否为null: {nextStop == null}"); - - EnumEventSystem.Global.Send(DialogEventEnum.LineShown); - ActionKit.Delay(0.1f, () => - { - Debug.Log("[ScreenSystem] AfterLineShown - 延迟结束,调用回调"); - EnumEventSystem.Global.Send(DialogEventEnum.LineEnd); - nextStop.Invoke(); - Debug.Log("[ScreenSystem] AfterLineShown - 回调调用完成"); - }).StartGlobal(); - typewriter.onTextShowed.RemoveAllListeners(); - } - - public void ShowOptions(DialogOption[] dialogueOptions) - { - Debug.Log("不能在显示屏显示对话"); - } - - public void HideDialog() - { - // HideDialog应该由其他函数控制 - } - - public bool TrySkipLine(bool isAutoSkip) - { - // 这里不能跳过对话 - return true; - } - - public void NextStep() - { - // 这里不能手动跳到下一行 - } - - public void OnLocalizationChanged(string value) - { - // 屏幕不需要本地化 - } - - #endregion - private int EstimateLineNum(string text) { textForEstimation.text = text; diff --git a/Assets/Scripts/FixSystemNew/Screen System/TaskScreen.cs b/Assets/Scripts/FixSystemNew/Screen System/TaskScreen.cs index 4e4c59d69..f01476be1 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/TaskScreen.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/TaskScreen.cs @@ -1,7 +1,5 @@ -using System; using System.Collections.Generic; using AibisDream.Framework; -using AibisDream.Kit; using AibisDream.Utility; using TMPro; using UnityEngine; @@ -9,7 +7,7 @@ using UnityEngine.UI; namespace AibisDream { - public class TaskScreen : MonoBehaviour, IDialogView + public class TaskScreen : MonoBehaviour, ILineView { #region 索引 @@ -24,74 +22,6 @@ namespace AibisDream _taskListParent = transform.Find("Record"); _taskItemPrefab = ResourceKit.LoadAssetSync(ConstRef.TaskItemName); } - - #region 对话框功能实现 - - // TODO 随时切换回头再加,先直接赋值 - // public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, string lineId, bool isAutoSkip = false) - // { - // var taskItem = Instantiate(_taskItemPrefab, _taskListParent); - // // 设置本地化数据 - // - // var localize = taskItem.GetComponent(); - // localize.SetLocalizedText(DialogController.Instance.GetCurLocalizedTableName(), lineId); - // _taskDict[lineId] = localize; - // - // EnumEventSystem.Global.Send(DialogEventEnum.LineShown); - // EnumEventSystem.Global.Send(DialogEventEnum.LineEnd); - // nextStep.Invoke(); - // LayoutRebuilder.ForceRebuildLayoutImmediate(_taskListParent.GetComponent()); - // } - - public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, string lineId, - bool isAutoSkip = false) - { - if (_taskDict.ContainsKey(lineId)) - { - EnumEventSystem.Global.Send(DialogEventEnum.LineShown); - EnumEventSystem.Global.Send(DialogEventEnum.LineEnd); - nextStep.Invoke(); - return; - } - - var taskItem = Instantiate(_taskItemPrefab, _taskListParent); - var task = taskItem.GetComponent(); - task.text = $"\u25cf {dialogLine}"; - - _taskDict[lineId] = taskItem; - EnumEventSystem.Global.Send(DialogEventEnum.LineShown); - EnumEventSystem.Global.Send(DialogEventEnum.LineEnd); - nextStep.Invoke(); - LayoutRebuilder.ForceRebuildLayoutImmediate(_taskListParent.GetComponent()); - } - - public void ShowOptions(DialogOption[] dialogueOptions) - { - Debug.Log("Task 面板不能显示选项"); - } - - public void HideDialog() - { - // 无法隐藏 - } - - public bool TrySkipLine(bool isForceSkip = false) - { - // 直接继续不跳过 - return true; - } - - public void NextStep() - { - // 这里不能手动跳到下一行 - } - - public void OnLocalizationChanged(string value) - { - // TODO 有需要可以调整文本 - } - - #endregion public void CompleteTask(string lineId) { @@ -109,5 +39,25 @@ namespace AibisDream } _taskDict.Clear(); } + + public void RunLine(LineSyncToken token) + { + if (_taskDict.ContainsKey(token.lineInfo.lineId)) + { + EnumEventSystem.Global.Send(DialogEventEnum.LineShown); + token.ForceAdvance(); + return; + } + + var taskItem = Instantiate(_taskItemPrefab, _taskListParent); + var task = taskItem.GetComponent(); + task.text = $"\u25cf {token.lineInfo.lineText}"; + token.TextStart(); + + _taskDict[token.lineInfo.lineId] = taskItem; + token.TextShown(); + token.ForceAdvance(); + LayoutRebuilder.ForceRebuildLayoutImmediate(_taskListParent.GetComponent()); + } } } diff --git a/Assets/Scripts/Framework/AudioKit/AudioManager.cs b/Assets/Scripts/Framework/AudioKit/AudioManager.cs index 91624976a..83f34e105 100644 --- a/Assets/Scripts/Framework/AudioKit/AudioManager.cs +++ b/Assets/Scripts/Framework/AudioKit/AudioManager.cs @@ -11,7 +11,7 @@ using STOP_MODE = FMOD.Studio.STOP_MODE; namespace AibisDream.Kit { - public class AudioManager : Singleton, IAudioManager + public class AudioManager : Singleton { private const string AmbStateName = "scene"; @@ -46,14 +46,14 @@ namespace AibisDream.Kit private void RegisterEvent() { // 语音相关 - _removeTrigger.Add(EnumEventSystem.Global.Register(DialogEventEnum.LineStart, OnLineStart)); + _removeTrigger.Add(EnumEventSystem.Global.Register(DialogEventEnum.LineStart, OnLineStart)); _removeTrigger.Add(EnumEventSystem.Global.Register(DialogEventEnum.LineShown, OnLineShown)); // 场景切换相关 _removeTrigger.Add(EnumEventSystem.Global.Register(EventEnum.SceneLoad, OnSceneLoad)); _removeTrigger.Add(EnumEventSystem.Global.Register(EventEnum.FixStateSwitch, OnFixStateChange)); _removeTrigger.Add(EnumEventSystem.Global.Register(GameLoopEnum.GameQuit, OnGameQuit)); } - + private void RegisterData() { // 注册数据 @@ -247,7 +247,7 @@ namespace AibisDream.Kit #endregion - public void OnLineStart(DialogText dialogText) + public void OnLineStart(LineInfo dialogText) { if (_voiceInstance.IsPlaying()) { @@ -255,12 +255,12 @@ namespace AibisDream.Kit _voiceInstance.release(); } - if (string.IsNullOrEmpty(dialogText.actor.voicePath) || !FModEx.IsEventExist(dialogText.actor.VoicePath)) + if (string.IsNullOrEmpty(dialogText.character.voicePath) || !FModEx.IsEventExist(dialogText.character.VoicePath)) { return; } - _voiceInstance = RuntimeManager.CreateInstance(dialogText.actor.VoicePath); + _voiceInstance = RuntimeManager.CreateInstance(dialogText.character.VoicePath); _voiceInstance.start(); } diff --git a/Assets/Scripts/Framework/Config/Character.cs b/Assets/Scripts/Framework/Config/Character.cs index a4dca311d..ff69cdd07 100644 --- a/Assets/Scripts/Framework/Config/Character.cs +++ b/Assets/Scripts/Framework/Config/Character.cs @@ -84,6 +84,7 @@ namespace AibisDream.Kit { Aside, Player, - MainActor + MainActor, + Center } } \ No newline at end of file diff --git a/Assets/Scripts/Framework/Core/EventKit.cs b/Assets/Scripts/Framework/Core/EventKit.cs index b4b4c2638..2bc2aff94 100644 --- a/Assets/Scripts/Framework/Core/EventKit.cs +++ b/Assets/Scripts/Framework/Core/EventKit.cs @@ -88,12 +88,23 @@ namespace AibisDream.Framework if (!_eventDict.TryGetValue(typeof(T), out var e)) return; if (e.Length <= kv || e[kv] == null) return; - + if (e[kv] is EasyEvent tempEvent) { tempEvent.UnRegister(onEvent); } } + + public void UnRegister(T key, Action onEvent) where T : IConvertible + { + var kv = key.ToInt32(null); + if (!_eventDict.TryGetValue(typeof(T), out var e)) return; + if (e.Length <= kv || e[kv] == null) return; + if (e[kv] is EasyEvent tempEvent) + { + tempEvent.UnRegister(onEvent); + } + } public void UnRegister(T key) where T : IConvertible { diff --git a/Assets/Scripts/Framework/EventSystemKit/EventSystemEx.cs b/Assets/Scripts/Framework/EventSystemKit/EventSystemEx.cs index 02521127c..4a4a5a94d 100644 --- a/Assets/Scripts/Framework/EventSystemKit/EventSystemEx.cs +++ b/Assets/Scripts/Framework/EventSystemKit/EventSystemEx.cs @@ -1,76 +1,120 @@ -using AibisDream.Kit; +using System.Collections.Generic; +using AibisDream.Kit; using UnityEngine; namespace AibisDream.Framework { - public class EventSystemEx : SingletonBase + public class EventSystemEx : Singleton { #region 状态 public bool isLocked; #endregion - - public GameObject pointerOverObj; - public GameObject draggingObj; - public GameObject holdingObj; - + + private List pointerOverObjList; + private List draggingObjList; + private List holdingObjList; + #region 事件触发中转 public void OnPointerEnter(IInteraction interaction) { - pointerOverObj = interaction.GetGameObject(); - EnumEventSystem.Global.Send(TriggerEnum.PointerEnter, interaction); + if (!pointerOverObjList.Contains(interaction.GetGameObject())) + { + pointerOverObjList.Add(interaction.GetGameObject()); + } } public void OnPointerExit(IInteraction interaction) { - if (pointerOverObj == interaction.GetGameObject()) - { - EnumEventSystem.Global.Send(TriggerEnum.PointerExit, interaction); - pointerOverObj = null; - } + pointerOverObjList.Remove(interaction.GetGameObject()); } public void OnPointerDown(IInteraction interaction) { - EnumEventSystem.Global.Send(TriggerEnum.PointerDown, interaction); - holdingObj = interaction.GetGameObject(); + if (!holdingObjList.Contains(interaction.GetGameObject())) + { + holdingObjList.Add(interaction.GetGameObject()); + } } public void OnPointerUp(IInteraction interaction) { - if (holdingObj == interaction.GetGameObject()) + holdingObjList.Remove(interaction.GetGameObject()); + } + + public void OnDrag(IInteraction interaction) + { + if (!draggingObjList.Contains(interaction.GetGameObject())) { - EnumEventSystem.Global.Send(TriggerEnum.PointerUp, interaction); - holdingObj = null; + draggingObjList.Add(interaction.GetGameObject()); + } + } + + public void OnEndDrag(IInteraction interaction) + { + draggingObjList.Remove(interaction.GetGameObject()); + } + + public void OnBeginDrag(IInteraction interaction) + { + if (!draggingObjList.Contains(interaction.GetGameObject())) + { + draggingObjList.Add(interaction.GetGameObject()); + } + } + + public TriggerEnum GetPointerState() + { + if (holdingObjList.Count > 0 || draggingObjList.Count > 0) + { + return TriggerEnum.Dragging; + } + else if (pointerOverObjList.Count > 0) + { + return TriggerEnum.PointerOver; + } + else + { + return TriggerEnum.None; } } #endregion - #region 事件注册 + #region 单例必须的代码 public override void OnSingletonInit() { + pointerOverObjList = new List(); + draggingObjList = new List(); + holdingObjList = new List(); + + EnumEventSystem.Global.Register(GameLoopEnum.GameStart, ClearAll); + EnumEventSystem.Global.Register(GameLoopEnum.GameQuit, ClearAll); } - #endregion - - #region 单例必须的代码 - - private EventSystemEx() + private void ClearAll() { + pointerOverObjList.Clear(); + draggingObjList.Clear(); + holdingObjList.Clear(); + } + + public override void OnSingletonDestroy() + { + EnumEventSystem.Global.UnRegister(GameLoopEnum.GameStart, ClearAll); + EnumEventSystem.Global.UnRegister(GameLoopEnum.GameQuit, ClearAll); } #endregion } - + public enum TriggerEnum { - PointerEnter, - PointerExit, - PointerDown, - PointerUp + None, + Dragging, + PointerOver } } \ No newline at end of file diff --git a/Assets/Scripts/Framework/EventSystemKit/EventTriggerEx.cs b/Assets/Scripts/Framework/EventSystemKit/EventTriggerEx.cs index 93b761c97..c50daa9e1 100644 --- a/Assets/Scripts/Framework/EventSystemKit/EventTriggerEx.cs +++ b/Assets/Scripts/Framework/EventSystemKit/EventTriggerEx.cs @@ -102,6 +102,24 @@ namespace AibisDream.Framework base.OnPointerUp(eventData); } } + + public override void OnDrag(PointerEventData eventData) + { + EventSystemEx.Instance.OnDrag(_interaction); + base.OnDrag(eventData); + } + + public override void OnEndDrag(PointerEventData eventData) + { + EventSystemEx.Instance.OnEndDrag(_interaction); + base.OnEndDrag(eventData); + } + + public override void OnBeginDrag(PointerEventData eventData) + { + EventSystemEx.Instance.OnEndDrag(_interaction); + base.OnBeginDrag(eventData); + } } public interface IInteraction diff --git a/Assets/Scripts/Framework/Moveable.meta b/Assets/Scripts/Framework/Moveable.meta deleted file mode 100644 index 0d6800e14..000000000 --- a/Assets/Scripts/Framework/Moveable.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 9a9cfd121f9a45c0a72e5f056e7ce308 -timeCreated: 1732358305 \ No newline at end of file diff --git a/Assets/Scripts/Framework/Moveable/IMoveable.cs b/Assets/Scripts/Framework/Moveable/IMoveable.cs deleted file mode 100644 index 6dff18dad..000000000 --- a/Assets/Scripts/Framework/Moveable/IMoveable.cs +++ /dev/null @@ -1,16 +0,0 @@ -using UnityEngine; - -namespace AibisDream.Framework -{ - public interface IMoveable - { - bool IsBlock { get; } - - void StartMove(); - - void Move(Vector2 mousePos); - - void StopMove(); - } -} - diff --git a/Assets/Scripts/Framework/Moveable/IMoveable.cs.meta b/Assets/Scripts/Framework/Moveable/IMoveable.cs.meta deleted file mode 100644 index bf7be376a..000000000 --- a/Assets/Scripts/Framework/Moveable/IMoveable.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c5c7b28802d266d499177b7fa8f9f2cd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Framework/Moveable/MoveableSystem.cs b/Assets/Scripts/Framework/Moveable/MoveableSystem.cs deleted file mode 100644 index 9e26b1931..000000000 --- a/Assets/Scripts/Framework/Moveable/MoveableSystem.cs +++ /dev/null @@ -1,74 +0,0 @@ -using UnityEngine; - -namespace AibisDream.Framework -{ - public class MoveableSystem : IMonoKit - { - private bool _isDragging; - private IMoveable _dragObj; - private Vector3 _offset; - private readonly Camera _camera = Camera.main; - - public void OnUpdate() - { - // 鼠标按下 - if (Input.GetMouseButtonDown(0)) - { - OnMouseClickDown(); - } - - // 鼠标按住 - if (Input.GetMouseButton(0) && _isDragging) - { - OnMouseHolding(); - } - - // 鼠标松开 - if (Input.GetMouseButtonUp(0)) - { - OnMouseClickUp(); - } - } - - private void OnMouseClickDown() - { - // 按下时发出检查射线 - Ray ray = _camera.ScreenPointToRay(Input.mousePosition); - RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction); - - // 检测命中的物体 - if (hit.collider && hit.collider.CompareTag("Moveable")) - { - _dragObj = hit.collider.gameObject.GetComponent(); - if (_dragObj == null) return; - if (_dragObj.IsBlock) return; - - _dragObj.StartMove(); - _offset = hit.collider.transform.position - GetMouseAsWorldPoint(); - - _isDragging = true; - } - } - - private void OnMouseHolding() - { - _dragObj.Move(GetMouseAsWorldPoint() + _offset); - } - - private void OnMouseClickUp() - { - if (!_isDragging) return; - - _dragObj?.StopMove(); - _dragObj = null; - _isDragging = false; - } - - private Vector3 GetMouseAsWorldPoint() - { - Vector3 mousePoint = Input.mousePosition; - mousePoint.z = _camera.nearClipPlane; - return _camera.ScreenToWorldPoint(mousePoint); - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Framework/Moveable/MoveableSystem.cs.meta b/Assets/Scripts/Framework/Moveable/MoveableSystem.cs.meta deleted file mode 100644 index 0268f4b0c..000000000 --- a/Assets/Scripts/Framework/Moveable/MoveableSystem.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 5d755460ba0142f39c5677d8f948c777 -timeCreated: 1732358554 \ No newline at end of file diff --git a/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs b/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs index 23f376ca0..e57ebf2ba 100644 --- a/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs +++ b/Assets/Scripts/Framework/OtherKit/LocalizationKit.cs @@ -16,6 +16,8 @@ namespace AibisDream.Framework public static LocalizationTable ActorTable { get; private set; } + public static Locale CurrentLocale => LocalizationSettings.SelectedLocale; + static LocalizationKit() { #if UNITY_EDITOR @@ -23,9 +25,15 @@ namespace AibisDream.Framework #else _paramTable = new LocalizationTable(ParamTableName); ActorTable = new LocalizationTable(ActorTableName); + LocalizationSettings.SelectedLocaleChanged += OnLocaleChanged; #endif } + private static void OnLocaleChanged(Locale locale) + { + EnumEventSystem.Global.Send(SettingChangeEvent.LocaleChanged, locale); + } + #if UNITY_EDITOR private static void OnPlayModeChanged(PlayModeStateChange playMode) { @@ -36,6 +44,7 @@ namespace AibisDream.Framework ActorTable?.Dispose(); _paramTable = new LocalizationTable(ParamTableName); ActorTable = new LocalizationTable(ActorTableName); + LocalizationSettings.SelectedLocaleChanged += OnLocaleChanged; } else if (playMode == PlayModeStateChange.ExitingPlayMode) { @@ -43,27 +52,28 @@ namespace AibisDream.Framework ActorTable?.Dispose(); _paramTable = null; ActorTable = null; + LocalizationSettings.SelectedLocaleChanged -= OnLocaleChanged; } } #endif - public static async void SwitchLanguage(string localeCode) - { - // 等待本地化系统初始化完成 - await LocalizationSettings.InitializationOperation.Task; - - var selectedLocale = - LocalizationSettings.AvailableLocales.Locales.Find(locale => locale.Identifier.Code == localeCode); + public static async void SwitchLanguage(string localeCode) + { + // 等待本地化系统初始化完成 + await LocalizationSettings.InitializationOperation.Task; - if (selectedLocale) - { - LocalizationSettings.SelectedLocale = selectedLocale; + var selectedLocale = + LocalizationSettings.AvailableLocales.Locales.Find(locale => locale.Identifier.Code == localeCode); + + if (selectedLocale) + { + LocalizationSettings.SelectedLocale = selectedLocale; + } + else + { + Debug.LogWarning($"Locale with code {localeCode} not found."); + } } - else - { - Debug.LogWarning($"Locale with code {localeCode} not found."); - } - } /// /// 本地化参数 @@ -75,7 +85,7 @@ namespace AibisDream.Framework { // 非本地化参数直接返回 if (!param.StartsWith(LocalizationPrefix)) return param; - + var localizationKey = param[LocalizationPrefix.Length..]; // 获取本地化值 if (table.TryGetValue(localizationKey, out var value)) @@ -87,7 +97,7 @@ namespace AibisDream.Framework Debug.LogWarning($"Variable Key '{localizationKey}' not found in localization table."); return localizationKey; } - + /// /// 本地化参数 /// @@ -97,18 +107,18 @@ namespace AibisDream.Framework { return LocalizeParam(param, _paramTable); } - + public static string GetL10NParamKey(string key) { // 本地化参数则去除前缀,非本地化参数直接返回 return key.StartsWith(LocalizationPrefix) ? key[LocalizationPrefix.Length..] : key; } - + /// /// 确保本地化系统已初始化 /// /// 初始化操作 - public static async System.Threading.Tasks.Task EnsureInitialized() + public static async void EnsureInitialized() { await LocalizationSettings.InitializationOperation.Task; } @@ -127,16 +137,16 @@ namespace AibisDream.Framework Debug.Log($"开始初始化表格{tableName}"); InitializeAsync(); } - + private async void InitializeAsync() { // 等待本地化系统初始化完成 await LocalizationSettings.InitializationOperation.Task; - + _stringTable = LocalizationSettings.StringDatabase.GetTable(TableName); LocalizationSettings.SelectedLocaleChanged += OnLocaleChanged; _isInitialized = true; - + Debug.Log($"表格{TableName}已成功加载"); } diff --git a/Assets/Scripts/Framework/OtherKit/MonoCenter.cs b/Assets/Scripts/Framework/OtherKit/MonoCenter.cs index 8721910c4..89b4b3211 100644 --- a/Assets/Scripts/Framework/OtherKit/MonoCenter.cs +++ b/Assets/Scripts/Framework/OtherKit/MonoCenter.cs @@ -23,7 +23,6 @@ namespace AibisDream.Framework { _iocContainer ??= new IOCContainer(); // 在这里添加相应的工具 - Register(new MoveableSystem()); Register(new TransTest()); } diff --git a/Assets/Scripts/Game Loop/EventEnums.cs b/Assets/Scripts/Game Loop/EventEnums.cs index 4f2a8d83c..89c1f68e8 100644 --- a/Assets/Scripts/Game Loop/EventEnums.cs +++ b/Assets/Scripts/Game Loop/EventEnums.cs @@ -35,8 +35,8 @@ namespace AibisDream public enum InteractionEventEnum { - Start, - End + DialogStart, + DialogEnd } public struct DialogText @@ -69,4 +69,10 @@ namespace AibisDream { VariableSet } + + public enum SettingChangeEvent + { + TextSpeed, + LocaleChanged + } } \ No newline at end of file diff --git a/Assets/Scripts/Game Loop/GameManager.cs b/Assets/Scripts/Game Loop/GameManager.cs index 5a33a094e..dad61e091 100644 --- a/Assets/Scripts/Game Loop/GameManager.cs +++ b/Assets/Scripts/Game Loop/GameManager.cs @@ -18,6 +18,8 @@ namespace AibisDream { #region 运行模式相关 + public GameLoopState state; + private TalkSceneSO[] _totalSceneSos; public RunMode runMode; @@ -129,7 +131,7 @@ namespace AibisDream // 音频全部暂停 AudioManager.Instance.PauseAll(); // 关闭Dialog - DialogCanvasManager.Instance.CloseCanvas(); + DialogUIManager.Instance.CloseCanvas(); } public void ContinueGame() @@ -141,7 +143,7 @@ namespace AibisDream // 音频继续 AudioManager.Instance.UnPauseAll(); // 打开Dialog - DialogCanvasManager.Instance.OpenCanvas(); + DialogUIManager.Instance.OpenCanvas(); } public void QuitGame() @@ -177,7 +179,7 @@ namespace AibisDream // 音频继续 AudioManager.Instance.UnPauseAll(); // 打开Dialog - DialogCanvasManager.Instance.OpenCanvas(); + DialogUIManager.Instance.OpenCanvas(); yield return UIManager.Instance.GetPanel().FadeOutAsync(); } @@ -240,6 +242,44 @@ namespace AibisDream { return _currentTalkSceneSo.Value.name; } + + #region 事件处理 + + private IUnRegister[] _unRegisters; + + private void OnEnable() + { + RegisterEvents(); + } + + private void OnDisable() + { + UnRegisterEvents(); + } + + private void RegisterEvents() + { + _unRegisters = new IUnRegister[6]; + + _unRegisters[0] = EnumEventSystem.Global.Register(GameLoopEnum.GameStart, () => state.OnGame(true)); + _unRegisters[1] = EnumEventSystem.Global.Register(GameLoopEnum.PauseGame, () => state.OnPause(true)); + + _unRegisters[2] = EnumEventSystem.Global.Register(GameLoopEnum.GameQuit, () => state.OnGame(false)); + _unRegisters[3] = EnumEventSystem.Global.Register(GameLoopEnum.UnPauseGame, () => state.OnPause(false)); + + _unRegisters[4] = EnumEventSystem.Global.Register(InteractionEventEnum.DialogStart, () => state.OnDialog(true)); + _unRegisters[5] = EnumEventSystem.Global.Register(InteractionEventEnum.DialogEnd, () => state.OnDialog(false)); + } + + private void UnRegisterEvents() + { + foreach (var unRegister in _unRegisters) + { + unRegister.UnRegister(); + } + } + + #endregion } /// @@ -287,6 +327,33 @@ namespace AibisDream } } + public struct GameLoopState + { + public bool isInGame; + public bool isInDialog; + public bool isInPause; + + public void OnGame(bool isInGame) + { + this.isInGame = isInGame; + } + + public void OnPause(bool isInPause) + { + this.isInPause = isInPause; + } + + public void OnDialog(bool isInDialog) + { + this.isInDialog = isInDialog; + } + + public bool IsInputAvailable() + { + return isInGame && isInDialog && !isInPause; + } + } + public enum RunMode { Product, diff --git a/Assets/Scripts/Game Loop/SettingLoader.cs b/Assets/Scripts/Game Loop/SettingLoader.cs index 9a77156e3..238451a0f 100644 --- a/Assets/Scripts/Game Loop/SettingLoader.cs +++ b/Assets/Scripts/Game Loop/SettingLoader.cs @@ -3,7 +3,6 @@ using System.Globalization; using AibisDream.Framework; using AibisDream.Kit; using UnityEngine; -using UnityEngine.Localization.Settings; namespace AibisDream { @@ -13,7 +12,7 @@ namespace AibisDream public class SettingLoader { private static readonly string SettingPath = Application.streamingAssetsPath + "/Config/setting.json"; - + private readonly ConfigContainer _container; private SettingLoader() @@ -25,6 +24,11 @@ namespace AibisDream _container.OnWrite += OnSettingChanged; } + private void Dispose() + { + _container.OnWrite -= OnSettingChanged; + } + private void LoadAllSetting() { var settingConfig = _container.ReadAll(); @@ -34,7 +38,7 @@ namespace AibisDream } } - private async void OnSettingChanged(string propName, string value) + private void OnSettingChanged(string propName, string value) { // 配置项同步 switch (propName) @@ -43,7 +47,7 @@ namespace AibisDream AudioManager.Instance.SetVolume(float.Parse(value, CultureInfo.InvariantCulture)); break; case "TextSpeed": - // TODO 调整文字速度 + EnumEventSystem.Global.Send(SettingChangeEvent.TextSpeed, value); break; case "Resolution": // TODO 调整分辨率 @@ -54,7 +58,6 @@ namespace AibisDream break; case "Language": // 确保本地化系统已初始化 - await LocalizationSettings.InitializationOperation.Task; LocalizationKit.SwitchLanguage(value); break; default: @@ -77,13 +80,18 @@ namespace AibisDream { return _container.ReadAll(); } - + #region 单例部分 public static SettingLoader Instance { get; private set; } public static void Init() { + if (Instance != null) + { + Instance.Dispose(); + Instance = null; + } Instance = new SettingLoader(); } diff --git a/Assets/Scripts/MiniGame/Gear/Gear.cs b/Assets/Scripts/MiniGame/Gear/Gear.cs index 81d3cd4a4..09c9fd647 100644 --- a/Assets/Scripts/MiniGame/Gear/Gear.cs +++ b/Assets/Scripts/MiniGame/Gear/Gear.cs @@ -40,8 +40,8 @@ namespace AibisDream _trigger = GetComponent(); _trigger.Register(EventTriggerType.Drag, OnDrag); - _trigger.Register(EventTriggerType.BeginDrag, StartMove); - _trigger.Register(EventTriggerType.EndDrag, StopMove); + _trigger.Register(EventTriggerType.PointerDown, StartMove); + _trigger.Register(EventTriggerType.PointerUp, StopMove); } private void Start() @@ -108,10 +108,10 @@ namespace AibisDream transform.DOPause(); } - public void StopMove(BaseEventData eventData) + private void StopMove(BaseEventData eventData) { // 正常情况下不会出错 - if (eventData is not PointerEventData pointerData) return; + if (eventData is not PointerEventData) return; if (targetShaft) { diff --git a/Assets/Scripts/MiniGame/Gear/GearSystem.cs b/Assets/Scripts/MiniGame/Gear/GearSystem.cs index 89b24378b..81e78a96e 100644 --- a/Assets/Scripts/MiniGame/Gear/GearSystem.cs +++ b/Assets/Scripts/MiniGame/Gear/GearSystem.cs @@ -68,8 +68,8 @@ namespace AibisDream private void OnEnable() { - var unRegister1 = EnumEventSystem.Global.Register(InteractionEventEnum.Start, () => _isInteractive = true); - var unRegister2 = EnumEventSystem.Global.Register(InteractionEventEnum.End, () => _isInteractive = false); + var unRegister1 = EnumEventSystem.Global.Register(InteractionEventEnum.DialogEnd, () => _isInteractive = true); + var unRegister2 = EnumEventSystem.Global.Register(InteractionEventEnum.DialogStart, () => _isInteractive = false); _evtUnRegisters = new[] { unRegister1, unRegister2 }; } diff --git a/Assets/Scripts/SubWay/OutsideCenter.cs b/Assets/Scripts/SubWay/OutsideCenter.cs index babcbe6db..afec095e5 100644 --- a/Assets/Scripts/SubWay/OutsideCenter.cs +++ b/Assets/Scripts/SubWay/OutsideCenter.cs @@ -13,7 +13,6 @@ namespace AibisDream public override void OnSingletonInit() { // 加载气泡 - DialogCanvasManager.Instance.SwitchDialogView(DialogViewType.StandardBubble); BubbleGroup.Instance.LoadBubbles(bubbleSlotGroup.CollectData()); } diff --git a/Assets/Scripts/UI/Components/BoolButton.cs b/Assets/Scripts/UI/Components/BoolButton.cs index 6bba7947d..4f49e921a 100644 --- a/Assets/Scripts/UI/Components/BoolButton.cs +++ b/Assets/Scripts/UI/Components/BoolButton.cs @@ -46,6 +46,11 @@ namespace AibisDream _stringEvent.SetEntry(getBool.Invoke() ? data.trueKey : data.falseKey); } } + + public void FreshState() + { + AfterClick(); + } } [Serializable] diff --git a/Assets/Scripts/UI/Cursor/CursorManager.cs b/Assets/Scripts/UI/Cursor/CursorManager.cs index 31c92a729..187f4530d 100644 --- a/Assets/Scripts/UI/Cursor/CursorManager.cs +++ b/Assets/Scripts/UI/Cursor/CursorManager.cs @@ -1,42 +1,18 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using AibisDream.Framework; +using AibisDream.Framework; using AibisDream.Kit; using UnityEngine; -using UnityEngine.EventSystems; using UnityEngine.UI; namespace AibisDream { public class CursorManager : Singleton { - private const float DelayTime = 0.1f; + [SerializeField] private GameObject border; - [SerializeField] - private GameObject border; - [Header("指针图片")] public Sprite defaultCursor; public Sprite nextTalk, talking, option, interactive, holding, disable; private Image _cursor; - private GraphicRaycaster _raycaster; - - private Sprite _curCursor; - private CursorState _stateCache; - - #region 状态相关 - - private Coroutine _switchCoroutine; - private CursorState _curState = CursorState.Default; - private bool _isTalking; - private bool _isInGame; - - #endregion - - // 卸载时注销事件 - private readonly List _unRegisters = new(); private void Start() { @@ -48,147 +24,12 @@ namespace AibisDream private void InitCursor() { Cursor.visible = false; - SwitchCursor(defaultCursor); - } - - private void OnEnable() - { - RegisterEvent(); - } - - private void OnDisable() - { - // 注销所有事件 - foreach (var eventUnRegister in _unRegisters) - { - eventUnRegister.UnRegister(); - } - - _unRegisters.Clear(); + _cursor.sprite = defaultCursor; } private void InitRefs() { _cursor = transform.Find("Cursor").GetComponent(); - _raycaster = UIManager.Instance.Canvas.GetComponent(); - } - - private void RegisterEvent() - { - // 此处监听所有可能对鼠标状态产生影响的事件 - RegisterGameEvent(); - RegisterDialogEvent(); - RegisterTriggerEvent(); - } - - private void RegisterGameEvent() - { - _unRegisters.Add(EnumEventSystem.Global.Register(GameLoopEnum.GameStart, OnGameStart)); - _unRegisters.Add(EnumEventSystem.Global.Register(GameLoopEnum.GameQuit, OnGameQuit)); - _unRegisters.Add(EnumEventSystem.Global.Register(GameLoopEnum.PauseGame, OnPauseGame)); - _unRegisters.Add(EnumEventSystem.Global.Register(GameLoopEnum.UnPauseGame, OnUnPauseGame)); - } - - private void OnGameStart() - { - _isInGame = true; - } - - private void OnUnPauseGame() - { - _curState = _stateCache; - _stateCache = CursorState.Default; - - _isInGame = true; - } - - private void OnPauseGame() - { - _stateCache = _curState; - _curState = CursorState.Default; - - _isInGame = false; - } - - private void OnGameQuit() - { - _curCursor = defaultCursor; - - _curState = CursorState.Default; - _stateCache = CursorState.Default; - - _isInGame = false; - } - - private void RegisterDialogEvent() - { - // 对话相关 - _unRegisters.Add(EnumEventSystem.Global.Register(DialogEventEnum.LineStart, - OnLineStart)); - _unRegisters.Add(EnumEventSystem.Global.Register(DialogEventEnum.LineShown, () => SwitchCursor(nextTalk))); - _unRegisters.Add(EnumEventSystem.Global.Register(DialogEventEnum.LineEnd, OnLineEnd)); - _unRegisters.Add(EnumEventSystem.Global.Register(DialogEventEnum.OptionShow, OnOptionShow)); - _unRegisters.Add( - EnumEventSystem.Global.Register(DialogEventEnum.OptionSelected, - OnOptionSelect)); - } - - private void RegisterTriggerEvent() - { - // 交互相关 - _unRegisters.Add(EnumEventSystem.Global.Register(InteractionEventEnum.Start, OnInteractiveStart)); - _unRegisters.Add(EnumEventSystem.Global.Register(InteractionEventEnum.End, OnInteractiveEnd)); - - _unRegisters.Add( - EnumEventSystem.Global.Register(TriggerEnum.PointerEnter, OnPointerEnter)); - _unRegisters.Add( - EnumEventSystem.Global.Register(TriggerEnum.PointerExit, OnPointerExit)); - _unRegisters.Add( - EnumEventSystem.Global.Register(TriggerEnum.PointerDown, OnPointerDown)); - _unRegisters.Add( - EnumEventSystem.Global.Register(TriggerEnum.PointerUp, OnPointerUp)); - } - - private void Update() - { - UpdateCursor(); - HandleDialog(); - } - - private void UpdateCursor() - { - // 再判断是不是浮在可交互物上 - _cursor.sprite = !_isInGame || IsOverSelected() ? defaultCursor : _curCursor; - } - - private void HandleDialog() - { - if (!_isInGame) return; - if (!Input.GetMouseButtonDown(0) && !Input.GetKeyDown(KeyCode.Space)) return; - - // 控制对话 - if (_isTalking) - { - DialogController.Instance.JumpLine(); - } - } - - private bool IsOverSelected() - { - if (!EventSystem.current.IsPointerOverGameObject()) - { - return false; - } - - var eventData = new PointerEventData(EventSystem.current) - { - position = Input.mousePosition - }; - - var results = new List(); - _raycaster.Raycast(eventData, results); - - return results.Count > 0 && results.Any(result => result.gameObject.CompareTag("Selectable")); } private void LateUpdate() @@ -197,134 +38,88 @@ namespace AibisDream // RectTransformUtility.ScreenPointToLocalPointInRectangle(_cursorCanvas, Input.mousePosition, // CameraKit.Instance.uiCamera, out var worldPos); + // 判断当前要用什么样的指针 _cursor.rectTransform.position = Input.mousePosition; - // 在输入状态,要单独处理 + var cursorState = CheckCursorState(); + _cursor.sprite = GetCursorSprite(cursorState); } - #region 对话相关 - - private void OnLineStart(DialogText line) + private CursorStateEnum CheckCursorState() { - _isTalking = true; - SwitchCursor(talking); - } + var gameState = GameManager.Instance.state; - private void OnLineEnd() - { - StopDelayCursor(); - _switchCoroutine = StartCoroutine(DelayAction(() => + if (!gameState.isInGame || gameState.isInPause) { - _isTalking = false; - _curCursor = defaultCursor; - })); - } - - private void OnOptionShow() - { - _isTalking = true; - SwitchCursor(option); - } - - private void OnOptionSelect(DialogText line) - { - StopDelayCursor(); - _switchCoroutine = StartCoroutine(DelayAction(() => + // 非游戏中显示默认指针 + return CursorStateEnum.Default; + } + else if (UIManager.Instance.IsOverRegion("MainUI")) { - _isTalking = false; - _curCursor = defaultCursor; - })); - } - - #endregion - - #region 交互相关 - - private void OnInteractiveStart() - { - _curState = CursorState.Interactive; - if (EventSystemEx.Instance.pointerOverObj) + // 游戏中鼠标移至右上角Main Panel时显示默认指针 + return CursorStateEnum.Default; + } + else if (gameState.isInDialog) { - SwitchCursor(interactive); + // 处理对话中的指针 + var dialogState = DialogController.Instance.GetDialogState(); + return HandleDialogState(dialogState); + } + else + { + // 非对话处理指针交互 + var triggerEnum = EventSystemEx.Instance.GetPointerState(); + return HandleDraggingState(triggerEnum); } } - private void OnInteractiveEnd() + private CursorStateEnum HandleDialogState(LineSyncState dialogState) { - _curState = CursorState.Default; - // 退出时把Cursor置为Default - SwitchCursor(defaultCursor); - } - - private void OnPointerEnter(IInteraction target) - { - if (_curState == CursorState.Interactive && !_isTalking) + return dialogState switch { - // 如果不可交互,就显示不可交互的指针 - SwitchCursor(target.IsActive ? interactive : disable); - } + LineSyncState.Default => CursorStateEnum.Default, + LineSyncState.PlayText => CursorStateEnum.PlayText, + LineSyncState.AdvanceDelay => CursorStateEnum.PlayText, + LineSyncState.WaitForAdvance => CursorStateEnum.WaitForAdvance, + LineSyncState.WaitForAutoAdvance => CursorStateEnum.WaitForAdvance, + LineSyncState.Advanced => CursorStateEnum.Default, + LineSyncState.InOption => CursorStateEnum.InOption, + _ => CursorStateEnum.Default, + }; } - private void OnPointerExit(IInteraction target) + private CursorStateEnum HandleDraggingState(TriggerEnum triggerEnum) { - if (_curState == CursorState.Interactive && !_isTalking) + return triggerEnum switch { - SwitchCursor(defaultCursor); - } + TriggerEnum.Dragging => CursorStateEnum.Dragging, + TriggerEnum.PointerOver => CursorStateEnum.PointerOver, + _ => CursorStateEnum.Default, + }; } - private void OnPointerDown(IInteraction target) + private Sprite GetCursorSprite(CursorStateEnum cursorState) { - if (_curState == CursorState.Interactive && !_isTalking) + return cursorState switch { - SwitchCursor(target.IsActive ? holding : defaultCursor); - } - } - - private void OnPointerUp(IInteraction target) - { - if (_curState == CursorState.Interactive && !_isTalking) - { - // 如果松手时还在物体之上 - SwitchCursor(EventSystemEx.Instance.holdingObj == target.GetGameObject() ? interactive : defaultCursor); - } - } - - #endregion - - #region 指针切换 - - /// - /// 直接切指针 - /// - /// 指针图片 - private void SwitchCursor(Sprite sprite) - { - StopDelayCursor(); - _curCursor = sprite; - } - - private void StopDelayCursor() - { - if (_switchCoroutine != null) - { - StopCoroutine(_switchCoroutine); - _switchCoroutine = null; - } - } - - #endregion - - private static IEnumerator DelayAction(Action action) - { - yield return new WaitForSeconds(DelayTime); - action.Invoke(); + CursorStateEnum.Default => defaultCursor, + CursorStateEnum.PlayText => talking, + CursorStateEnum.WaitForAdvance => nextTalk, + CursorStateEnum.InOption => option, + CursorStateEnum.Dragging => holding, + CursorStateEnum.PointerOver => interactive, + _ => defaultCursor, + }; } } - public enum CursorState + public enum CursorStateEnum { Default, - Interactive + PlayText, + WaitForAdvance, + InOption, + Dragging, + PointerOver } } \ No newline at end of file diff --git a/Assets/Scripts/UI/DialogUI/Bubbles/Bubble.cs b/Assets/Scripts/UI/DialogUI/Bubbles/Bubble.cs index 633704c3c..016ec2237 100644 --- a/Assets/Scripts/UI/DialogUI/Bubbles/Bubble.cs +++ b/Assets/Scripts/UI/DialogUI/Bubbles/Bubble.cs @@ -1,5 +1,5 @@ using System; -using System.Text.RegularExpressions; +using System.Globalization; using AibisDream.Framework; using AibisDream.Kit; using AibisDream.Utility; @@ -10,7 +10,7 @@ using UnityEngine.UI; namespace AibisDream { - public class Bubble : MonoBehaviour + public class Bubble : MonoBehaviour, IBubble { private TypewriterCore _typewriter; private TMP_Text _actorName; @@ -24,16 +24,19 @@ namespace AibisDream #region 参数 - [SerializeField] public ActorRole role; - [SerializeField] public int idx; + [Header("参数")] + [SerializeField] private ActorRole role; + [SerializeField] private int idx; [SerializeField] private int maxWidth; [SerializeField] private int minWidth; + public ActorRole Role => role; + public int Idx => idx; + #endregion public event Action OnDisposed; - - public bool IsShowingText => _typewriter.isShowingText; + public event Action OnLineShown; public void LoadConfig(BubbleSlotData data) { @@ -47,6 +50,15 @@ namespace AibisDream rect.localPosition = UIManager.GetDialogUIPos(data.slotPosition); // 设置style SetStyle(data.bubbleStyle, data.pivotType); + // 注册事件 + _typewriter.onTextShowed.AddListener(InvokeLineShown); + EnumEventSystem.Global.Register(SettingChangeEvent.TextSpeed, OnTextSpeedChanged); + } + + private void InvokeLineShown() + { + OnLineShown?.Invoke(); + OnLineShown = null; } private void SetStyle(BubbleStyle bubbleStyle, PivotType pivotType) @@ -65,9 +77,19 @@ namespace AibisDream _rect.pivot = CommonUtil.GetPivotByType(pivotType); var spritePath = bubbleStyle.bubbleSpriteAddress.EndsWith("]") ? $"{bubbleStyle.bubbleSpriteAddress}" - : $"{bubbleStyle.bubbleSpriteAddress}[{pivotType.ToString()}]"; + : $"{bubbleStyle.bubbleSpriteAddress}[{pivotType}]"; _bubbleImage.sprite = ResourceKit.LoadAssetSync(spritePath); + + // 初始化文字速度 + var speedStr = SettingLoader.Instance.TryRead("TextSpeed", out string textSpeed) ? textSpeed : "1"; + OnTextSpeedChanged(speedStr); + } + + private void OnTextSpeedChanged(string value) + { + float speed = float.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out float result) ? result : 1f; + _typewriter.SetTypewriterSpeed(speed); } private void InitRefs() @@ -102,11 +124,16 @@ namespace AibisDream _typewriter.ShowText(line); } - public void SkipLine() + public bool SkipLine() { if (_typewriter.isShowingText) { _typewriter.SkipTypewriter(); + return true; + } + else + { + return false; } } @@ -118,6 +145,7 @@ namespace AibisDream public void Dispose() { Hide(); + _typewriter.onTextShowed.RemoveAllListeners(); OnDisposed?.Invoke(this); OnDisposed = null; } @@ -125,8 +153,7 @@ namespace AibisDream private void HandleLayout(string line) { // 先去除富文本标签 - line = Regex.Replace(line.Replace("
", "\n"), "[<|{].*?[>|}]", string.Empty); - var width = DialogCanvasManager.Instance.EstimateTextWidth(line, _lineText.fontSize); + var width = BubbleGroup.Instance.EstimateTextWidth(line.RemoveRichTextTags(), _lineText.fontSize); if (width > maxWidth) { _layoutElement.preferredWidth = maxWidth; @@ -172,4 +199,16 @@ namespace AibisDream } #endif } + + public interface IBubble + { + public ActorRole Role { get; } + public int Idx { get; } + + public event Action OnLineShown; + public void ShowActorName(CharacterVo characterVo); + public void ShowLine(string line); + public bool SkipLine(); + public void Hide(); + } } \ No newline at end of file diff --git a/Assets/Scripts/UI/DialogUI/Bubbles/BubbleGroup.cs b/Assets/Scripts/UI/DialogUI/Bubbles/BubbleGroup.cs index 1243fe858..8808a584f 100644 --- a/Assets/Scripts/UI/DialogUI/Bubbles/BubbleGroup.cs +++ b/Assets/Scripts/UI/DialogUI/Bubbles/BubbleGroup.cs @@ -1,59 +1,35 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; +using System.Threading.Tasks; using AibisDream.Framework; using AibisDream.Kit; +using AibisDream.Utility; +using TMPro; using UnityEngine; namespace AibisDream { - public class BubbleGroup : Singleton, IDialogView + public class BubbleGroup : Singleton, ILineView { - private BubbleOption[] _options; - private Dictionary _bubbleDict; - public DialogViewType CurDialogType { get; private set; } - + [SerializeField] private TMP_Text widthEstimation; + [SerializeField] private CenterBubble centerBubble; + + private Dictionary _bubbleDict = new(); private BubbleFactory _bubbleFactory; - - private SimpleObjectPool _bubblePool; - private SimpleObjectPool _optionPool; - - #region 一些索引 - - private Action _nextStep; - private Bubble _curBubble; - - private IUnRegister _unRegister; - - #endregion + private CancellationTokenSource _autoHideToken; #region 生命周期 public override void OnSingletonInit() { - // 注册泡泡 - _unRegister = - EnumEventSystem.Global.Register(DialogEventEnum.OptionSelected, - _ => HideOptions()); // 工厂 - _bubbleFactory = new BubbleFactory(transform.Find("Bubbles")); - // 加载选项 - InitOptions(); - } - - private void Start() - { - HideDialog(); - } - - public override void OnSingletonDestroy() - { - _unRegister.UnRegister(); + _bubbleFactory = new BubbleFactory(transform); } public void LoadBubbles(BubbleSlotGroupData groupData) { - CurDialogType = groupData.dialogViewType; // 回收旧泡泡 foreach (var oldBubble in _bubbleDict.Values.SelectMany(item => item)) { @@ -63,79 +39,61 @@ namespace AibisDream // 加载新泡泡 _bubbleDict = groupData.bubbleSlots .Select(item => _bubbleFactory.Create(item)) - .GroupBy(item => item.role) + .GroupBy(item => item.Role) .ToDictionary(group => group.Key, group => group.ToArray()); - - // 更新选项的位置 - if (groupData.bubbleOptionSlots is { Length: 0 }) - { - return; - } - - foreach (var optionSlotData in groupData.bubbleOptionSlots) - { - if (optionSlotData.optionIdx >= _options.Length) continue; - _options[optionSlotData.optionIdx].LoadData(optionSlotData); - } - } - - private void InitOptions() - { - _options = transform.Find("Options") - .GetComponentsInChildren(true) - .OrderBy(item => item.optionIdx) - .ToArray(); - - _bubbleDict = new Dictionary(); } #endregion - #region 对话框功能实现 + #region 新对话框功能实现 - public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, string lineId, - bool isAutoSkip = false) + public void RunLine(LineSyncToken syncToken) { - Debug.Log($"[BubbleGroup] ShowLine - 开始显示对话: {lineId}"); - Debug.Log($"[BubbleGroup] ShowLine - nextStep是否为null: {nextStep == null}"); + // 先中断原来的事件 + _autoHideToken?.Cancel(); + _autoHideToken = null; - gameObject.SetActive(true); + var character = syncToken.lineInfo.character; if (TryGetBubble(character.role, character.bubbleIdx, out var bubble)) { + // 注册事件 + bubble.OnLineShown += syncToken.TextShown; + syncToken.SkipTextAnima += () => bubble.SkipLine(); + syncToken.OnAdvance += AfterAdvance; + // 播放文字 bubble.ShowActorName(character); - bubble.ShowLine(dialogLine); + bubble.ShowLine(syncToken.lineInfo.lineText); + syncToken.TextStart(); // 将非选定的Bubble隐藏 HideDialog(bubble); } else { - Debug.LogWarning($"{character.GetActorName()}的Role没有对应Bubble"); - return; + Debug.LogWarning($"{character.GetActorName()}的Role {character.role}没有对应Bubble"); + HideDialog(); } - - // 保留信息 - _nextStep = nextStep; - _curBubble = bubble; - - Debug.Log($"[BubbleGroup] ShowLine - 设置完成,_nextStep是否为null: {_nextStep == null}"); + } + + public float EstimateTextWidth(string text, float fontSize) + { + widthEstimation.fontSize = fontSize; + widthEstimation.text = text; + widthEstimation.ForceMeshUpdate(); + return widthEstimation.preferredWidth; } - public void ShowOptions(DialogOption[] dialogueOptions) + private async void AfterAdvance() { - HideDialog(); - var availableOptions = dialogueOptions.Where(item => item.IsAvailable).ToArray(); - // 如果仅由一个选项 - if (availableOptions.Length == 1) + _autoHideToken = new CancellationTokenSource(); + try { - _options[0].ShowOption(availableOptions[0]); + await Task.Delay(ConstRef.AutoHideDelay, _autoHideToken.Token); + HideDialog(); } - else + catch (TaskCanceledException) { - for (var i = 0; i < availableOptions.Length; i++) - { - _options[i + 1].ShowOption(availableOptions[i]); - } + // 忽略取消 } } @@ -146,73 +104,36 @@ namespace AibisDream textBubble.Hide(); } - HideOptions(); + centerBubble.Hide(); } - public bool TrySkipLine(bool isForceSkip = false) - { - if (!_curBubble) - { - return true; - } - - if (_curBubble && _curBubble.IsShowingText) - { - _curBubble.SkipLine(); - return true; - } - - return false; - } - - public void NextStep() - { - Debug.Log($"[BubbleGroup] NextStep - _nextStep是否为null: {_nextStep == null}"); - - if (_nextStep == null) - { - Debug.Log("[BubbleGroup] NextStep - _nextStep为null,提前返回"); - return; - } - - Debug.Log("[BubbleGroup] NextStep - 发送LineEnd事件"); - EnumEventSystem.Global.Send(DialogEventEnum.LineEnd); - - var next = _nextStep; - _nextStep = null; - - _curBubble?.Hide(); - _curBubble = null; - - Debug.Log("[BubbleGroup] NextStep - 调用回调"); - next?.Invoke(); - Debug.Log("[BubbleGroup] NextStep - 回调调用完成"); - } - - public void OnLocalizationChanged(string value) - { - } - - #endregion - - private void HideDialog(Bubble activeBubble) + private void HideDialog(IBubble activeBubble) { foreach (var textBubble in _bubbleDict.Values.SelectMany(inner => inner)) { - if (activeBubble != textBubble) + if (activeBubble != (IBubble)textBubble) { textBubble.Hide(); } } - HideOptions(); + if (activeBubble != (IBubble)centerBubble) + { + centerBubble.Hide(); + } } - private bool TryGetBubble(ActorRole role, int idx, out Bubble bubble) + private bool TryGetBubble(ActorRole role, int idx, out IBubble bubble) { + if (role == ActorRole.Center) + { + bubble = centerBubble; + return true; + } + if (_bubbleDict.TryGetValue(role, out var bubbles)) { - bubble = bubbles.FirstOrDefault(item => item.idx == idx); + bubble = bubbles.FirstOrDefault(item => item.Idx == idx); return bubble != null; } @@ -220,12 +141,6 @@ namespace AibisDream return false; } - private void HideOptions() - { - foreach (var option in _options) - { - option.Hide(); - } - } + #endregion } } \ No newline at end of file diff --git a/Assets/Scripts/UI/DialogUI/Bubbles/BubbleOption.cs b/Assets/Scripts/UI/DialogUI/Bubbles/BubbleOption.cs index b731d5080..54ded6bb4 100644 --- a/Assets/Scripts/UI/DialogUI/Bubbles/BubbleOption.cs +++ b/Assets/Scripts/UI/DialogUI/Bubbles/BubbleOption.cs @@ -1,4 +1,5 @@ -using TMPro; +using System; +using TMPro; using UnityEngine; using UnityEngine.UI; @@ -17,12 +18,7 @@ namespace AibisDream _button = GetComponent