From aec424fcd53446aaf94b8e8c14e8225ccc01162b Mon Sep 17 00:00:00 2001 From: Ding Yuntian <1491671119@qq.com> Date: Wed, 21 May 2025 16:47:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Localization-Assets-Shared.asset | 17 ++ ...ables-Chinese (Simplified) (zh-Hans).asset | 18 +++ ...alization-String-Tables-English (en).asset | 18 +++ .../WenQuanYi Bitmap Song 14px SDF.asset | 4 +- .../FP_Day1_begin Shared Data.asset | 36 ++--- .../Language/Dialog/Fiction_Day1_begin.meta | 2 +- ...pewriter Sound - Package.unitypackage.meta | 7 + .../PlayMaker - Integration.unitypackage.meta | 7 + ... Scripting - Integration.unitypackage.meta | 7 + .../Prefabs/UI/Bubble/Aside Text.prefab | 4 +- Assets/Resources/Prefabs/UI/Bubble/Box.prefab | 8 +- .../UI/Bubble/Bubble Left Bottom.prefab | 4 +- .../Prefabs/UI/Bubble/Bubble Left.prefab | 4 +- .../UI/Bubble/Bubble Right Bottom.prefab | 4 +- .../Prefabs/UI/Bubble/Bubble Right.prefab | 4 +- .../UI/Bubble/Center Choice Button.prefab | 4 +- .../Prefabs/UI/Bubble/Choice Button.prefab | 4 +- Assets/Scenes/ExpressFixScene.unity | 44 +++-- Assets/Scenes/OPTest.unity | 140 +--------------- Assets/Scenes/Persistence.unity | 12 +- .../Screen System/ScreenSystem.cs | 150 +++++++----------- .../Screen System/ScreenYarnCommand.cs | 8 +- .../ActionKit/ActionKitMonoBehaviourEvents.cs | 21 ++- .../ActionKit/Queue/MonoActionQueue.cs | 2 +- .../Scripts/Framework/OtherKit/SandClock.cs | 54 +++++++ .../Framework/OtherKit/SandClock.cs.meta | 3 + Assets/Scripts/Utility/ConstRef.cs | 2 + 27 files changed, 285 insertions(+), 303 deletions(-) create mode 100644 Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta create mode 100644 Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta create mode 100644 Assets/Scripts/Framework/OtherKit/SandClock.cs create mode 100644 Assets/Scripts/Framework/OtherKit/SandClock.cs.meta diff --git a/Assets/AddressableAssetsData/AssetGroups/Localization-Assets-Shared.asset b/Assets/AddressableAssetsData/AssetGroups/Localization-Assets-Shared.asset index 189597789..517bd81a4 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Localization-Assets-Shared.asset +++ b/Assets/AddressableAssetsData/AssetGroups/Localization-Assets-Shared.asset @@ -97,6 +97,23 @@ MonoBehaviour: m_ReadOnly: 1 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 29f3df93ff78c16479dd8db51e939090 + m_Address: Assets/Language/Dialog/Fiction_Day1_night/Fiction_Day1_night Shared + Data.asset + m_ReadOnly: 1 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 2e124e99f4170224f9eb9590c304cdaf + m_Address: Assets/Language/Dialog/Fiction_Day1_begin/Fiction_Day1_begin Shared + Data.asset + m_ReadOnly: 1 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: f6d220fec7b888b4f89463b5da038e62 + m_Address: Assets/Language/Dialog/Fiction_Day1_mid/Fiction_Day1_mid Shared Data.asset + m_ReadOnly: 1 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 m_ReadOnly: 1 m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2} m_SchemaSet: diff --git a/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-Chinese (Simplified) (zh-Hans).asset b/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-Chinese (Simplified) (zh-Hans).asset index 519102f41..249794cc2 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-Chinese (Simplified) (zh-Hans).asset +++ b/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-Chinese (Simplified) (zh-Hans).asset @@ -113,6 +113,24 @@ MonoBehaviour: m_SerializedLabels: - Locale-zh-Hans FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 72f4481345eb6c24594911deb872e0be + m_Address: Fiction_Day1_night_zh-Hans + m_ReadOnly: 1 + m_SerializedLabels: + - Locale-zh-Hans + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: c677e9ac19cb9dd48b17402dfb636620 + m_Address: Fiction_Day1_begin_zh-Hans + m_ReadOnly: 1 + m_SerializedLabels: + - Locale-zh-Hans + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 6603078d8eb41524e9ad2edd5d182ccc + m_Address: Fiction_Day1_mid_zh-Hans + m_ReadOnly: 1 + m_SerializedLabels: + - Locale-zh-Hans + FlaggedDuringContentUpdateRestriction: 0 m_ReadOnly: 1 m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2} m_SchemaSet: diff --git a/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-English (en).asset b/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-English (en).asset index 78ff9d43c..043c8a0f9 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-English (en).asset +++ b/Assets/AddressableAssetsData/AssetGroups/Localization-String-Tables-English (en).asset @@ -113,6 +113,24 @@ MonoBehaviour: m_SerializedLabels: - Locale-en FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: d9da3ee8cbe1f3f40a93ee2c3042330d + m_Address: Fiction_Day1_night_en + m_ReadOnly: 1 + m_SerializedLabels: + - Locale-en + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 976e1ca4979c4574098d95fc5adb173c + m_Address: Fiction_Day1_begin_en + m_ReadOnly: 1 + m_SerializedLabels: + - Locale-en + FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 705a631ebd09db04fa1bda39e20e505e + m_Address: Fiction_Day1_mid_en + m_ReadOnly: 1 + m_SerializedLabels: + - Locale-en + FlaggedDuringContentUpdateRestriction: 0 m_ReadOnly: 1 m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2} m_SchemaSet: diff --git a/Assets/Font/Assets/WenQuanYi Bitmap Song 14px SDF.asset b/Assets/Font/Assets/WenQuanYi Bitmap Song 14px SDF.asset index b36b55080..3ba2a937e 100644 --- a/Assets/Font/Assets/WenQuanYi Bitmap Song 14px SDF.asset +++ b/Assets/Font/Assets/WenQuanYi Bitmap Song 14px SDF.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:07ad9ae6fcec0de317d37bf1a044fb1e1db9f6cfe6786d13415662ed0a6f3df5 -size 70548102 +oid sha256:48d04b9c88a57fd5f57557fc88e64cb96cf75ad635c8447ecc6a7fdc8235e08f +size 70534594 diff --git a/Assets/Language/Dialog/FP_Day1_begin/FP_Day1_begin Shared Data.asset b/Assets/Language/Dialog/FP_Day1_begin/FP_Day1_begin Shared Data.asset index 91ab7a06d..9d28c680f 100644 --- a/Assets/Language/Dialog/FP_Day1_begin/FP_Day1_begin Shared Data.asset +++ b/Assets/Language/Dialog/FP_Day1_begin/FP_Day1_begin Shared Data.asset @@ -31,20 +31,20 @@ MonoBehaviour: m_Key: line:0ad8733 m_Metadata: m_Items: - - rid: 7917695930343620624 - rid: 7917695930343620629 + - rid: 128121055538577421 - m_Id: 254685483010 m_Key: line:00d77f5 m_Metadata: m_Items: - - rid: 7917695930343620625 - rid: 7917695930343620630 + - rid: 128121055538577422 - m_Id: 254685483011 m_Key: line:09f006d m_Metadata: m_Items: - - rid: 7917695930343620626 - rid: 7917695930343620631 + - rid: 128121055538577423 m_Metadata: m_Items: [] m_KeyGenerator: @@ -52,6 +52,21 @@ MonoBehaviour: references: version: 2 RefIds: + - rid: 128121055538577421 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: Start + tags: [] + - rid: 128121055538577422 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: Start + tags: [] + - rid: 128121055538577423 + type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} + data: + nodeName: Start + tags: [] - rid: 7917695930343620621 type: {class: DistributedUIDGenerator, ns: UnityEngine.Localization.Tables, asm: Unity.Localization} data: @@ -66,21 +81,6 @@ MonoBehaviour: data: nodeName: Start tags: [] - - rid: 7917695930343620624 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: Start - tags: [] - - rid: 7917695930343620625 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: Start - tags: [] - - rid: 7917695930343620626 - type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} - data: - nodeName: Start - tags: [] - rid: 7917695930343620627 type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} data: diff --git a/Assets/Language/Dialog/Fiction_Day1_begin.meta b/Assets/Language/Dialog/Fiction_Day1_begin.meta index 07d76b9b7..dd50f04f3 100644 --- a/Assets/Language/Dialog/Fiction_Day1_begin.meta +++ b/Assets/Language/Dialog/Fiction_Day1_begin.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 685577c7a817bba4ca5a68ec82e49bc1 +guid: bb3db29bb0c559445b9fd94fb8872c86 PrefabImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta b/Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta new file mode 100644 index 000000000..4801b3793 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Extra/Typewriter Sound - Package.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 560a88da2bbc70140bed167f0ba7fe37 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta b/Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta new file mode 100644 index 000000000..77d64a86c --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Integrations/PlayMaker - Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fb01be13d6e88ca488dda82150319bfc +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta b/Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta new file mode 100644 index 000000000..05e590027 --- /dev/null +++ b/Assets/Plugins/Febucci/Text Animator/Integrations/Visual Scripting - Integration.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 117dcc671050f5247bd8743b91ecaab7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/UI/Bubble/Aside Text.prefab b/Assets/Resources/Prefabs/UI/Bubble/Aside Text.prefab index a138629a9..390976274 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Aside Text.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Aside Text.prefab @@ -244,8 +244,8 @@ MonoBehaviour: m_Calls: [] m_text: m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} - m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} + m_sharedMaterial: {fileID: -4590932807722055427, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/Resources/Prefabs/UI/Bubble/Box.prefab b/Assets/Resources/Prefabs/UI/Bubble/Box.prefab index f392e86d6..a85bb3e27 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Box.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Box.prefab @@ -499,7 +499,7 @@ MonoBehaviour: m_Calls: [] m_text: "\u6211\u4EEC\u90FD\u662F\u6309\u7167\u6307\u4EE4\u5DE5\u4F5C\u7684\u673A\u4F53~\u4F46\u533B\u751F\uFF01\u4F60\u7684\u8FD9\u6B21\u5DE5\u4F5C~
\u5DF2\u7ECF\u53D8\u6210\u6211\u6C38\u8FDC\u7684\u56DE\u5FC6\u5566\uFF01" m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -563,7 +563,7 @@ MonoBehaviour: m_margin: {x: 0, y: 0, z: -11.698608, w: -5.858551} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 + m_hasFontAssetChanged: 1 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!114 &1582206514939414771 @@ -709,7 +709,7 @@ MonoBehaviour: m_Calls: [] m_text: "\u82F1\u7406" m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -773,6 +773,6 @@ MonoBehaviour: m_margin: {x: 0, y: 0, z: 0, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 + m_hasFontAssetChanged: 1 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Resources/Prefabs/UI/Bubble/Bubble Left Bottom.prefab b/Assets/Resources/Prefabs/UI/Bubble/Bubble Left Bottom.prefab index f8dadf86f..b5e67f545 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Bubble Left Bottom.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Bubble Left Bottom.prefab @@ -244,8 +244,8 @@ MonoBehaviour: m_Calls: [] m_text: m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} - m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} + m_sharedMaterial: {fileID: -4590932807722055427, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/Resources/Prefabs/UI/Bubble/Bubble Left.prefab b/Assets/Resources/Prefabs/UI/Bubble/Bubble Left.prefab index c1dd30d37..2d31a4737 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Bubble Left.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Bubble Left.prefab @@ -244,8 +244,8 @@ MonoBehaviour: m_Calls: [] m_text: m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} - m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} + m_sharedMaterial: {fileID: -4590932807722055427, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/Resources/Prefabs/UI/Bubble/Bubble Right Bottom.prefab b/Assets/Resources/Prefabs/UI/Bubble/Bubble Right Bottom.prefab index 7075a7217..4182d3dd5 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Bubble Right Bottom.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Bubble Right Bottom.prefab @@ -69,8 +69,8 @@ MonoBehaviour: m_Calls: [] m_text: "\u793A\u4F8B\u6587\u5B57" m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} - m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} + m_sharedMaterial: {fileID: -4590932807722055427, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/Resources/Prefabs/UI/Bubble/Bubble Right.prefab b/Assets/Resources/Prefabs/UI/Bubble/Bubble Right.prefab index c03d1acee..711ea68de 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Bubble Right.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Bubble Right.prefab @@ -69,8 +69,8 @@ MonoBehaviour: m_Calls: [] m_text: m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} - m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} + m_sharedMaterial: {fileID: -4590932807722055427, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/Resources/Prefabs/UI/Bubble/Center Choice Button.prefab b/Assets/Resources/Prefabs/UI/Bubble/Center Choice Button.prefab index a216ceba5..c0b656904 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Center Choice Button.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Center Choice Button.prefab @@ -188,8 +188,8 @@ MonoBehaviour: m_Calls: [] m_text: Button m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} - m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} + m_sharedMaterial: {fileID: -4590932807722055427, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/Resources/Prefabs/UI/Bubble/Choice Button.prefab b/Assets/Resources/Prefabs/UI/Bubble/Choice Button.prefab index b8575f58d..36a385f66 100644 --- a/Assets/Resources/Prefabs/UI/Bubble/Choice Button.prefab +++ b/Assets/Resources/Prefabs/UI/Bubble/Choice Button.prefab @@ -234,8 +234,8 @@ MonoBehaviour: m_Calls: [] m_text: m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} - m_sharedMaterial: {fileID: 5406778561550118075, guid: 6ec37e37f7805e84bab296df89e6cf74, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} + m_sharedMaterial: {fileID: -4590932807722055427, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} m_fontMaterials: [] diff --git a/Assets/Scenes/ExpressFixScene.unity b/Assets/Scenes/ExpressFixScene.unity index cca030db6..539e4b684 100644 --- a/Assets/Scenes/ExpressFixScene.unity +++ b/Assets/Scenes/ExpressFixScene.unity @@ -296,7 +296,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &28301485 RectTransform: m_ObjectHideFlags: 0 @@ -311,10 +311,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 1463918794} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 2.37665, y: -2.27} + m_SizeDelta: {x: 4.7533, y: 3.08} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &28301486 MonoBehaviour: @@ -336,7 +336,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: "9.\u5730\u94C1\u5BF9\u8BDD\uFF08\u9700\u8981\u706B\u5C71\u548C\u533B\u751F\u90FD\u5728\u5730\u94C1\u4E0A\u53D1\u751F\u5BF9\u8BDD10.\u5916\u51FA\u90E8\u5206\u4ECE\u5916\u51FA\u573A\u666F\u5730\u94C1\u7AD9\u51FA\u53E3\u5904\u51FA\u73B0\u533B\u751F\uFF0C\u7136\u540Efadeout\uFF0C\u7136\u540Efadein\u5230\u8BCA\u5BA4\u95E8\u53E3\uFF0C\u548C\u82F1\u91CC\u5BF9\u8BDD11.\u8FDB\u5165\u8BCA\u5BA4" + m_text: "9.\u5730\u94C1\u5BF9\u8BDD\uFF08\u9700\u8981\u706B\u5C71\u548C\u533B\u751F\u90FD\u5728\u5730\u94C1\u4E0A\u53D1\u751F\u5BF9\u8BDD10.\u5916\u51FA\u90E8\u5206\u4ECE\u5916\u51FA\u573A\u666F\u5730\u94C1\u7AD9\u51FA\u53E3\u5904\u51FA\u73B0\u533B\u751F\uFF0C\u7136\u540Efadeout\uFF0C\u7136\u540Efadein\u5230\u8BCA\u5BA4\u95E8\u53E3\uFF0C\u548C\u82F1\u91CC\u5BF9\u8BDD11.\u8FDB\u5165\u8BCA\u5BA4\u533B\u751F\u90FD\u5728\u5730\u94C1\u4E0A\u53D1\u751F\u5BF9\u8BDD10.\u5916\u51FA\u90E8\u5206\u4ECE\u5916\u51FA\u573A\u666F\u5730\u94C1\u7AD9\u51FA\u53E3\u5904\u51FA\u73B0\u533B\u751F\uFF0C\u7136\u540Efadeout\uFF0C\u7136\u540Efadein\u5230\u8BCA\u5BA4\u95E8\u53E3\uFF0C\u548C\u82F1\u91CC\u5BF9\u8BDD11.\u8FDB\u5165\u8BCA\u5BA4\u533B\u751F\u90FD\u5728\u5730\u94C1\u4E0A\u53D1\u751F\u5BF9\u8BDD10.\u5916\u51FA\u90E8\u5206\u4ECE\u5916\u51FA\u573A\u666F\u5730\u94C1\u7AD9\u51FA\u53E3\u5904\u51FA\u73B0\u533B\u751F\uFF0C\u7136\u540Efadeout\uFF0C\u7136\u540Efadein\u5230\u8BCA\u5BA4\u95E8\u53E3\uFF0C\u548C\u82F1\u91CC\u5BF9\u8BDD11.\u8FDB\u5165\u8BCA\u5BA4\u533B\u751F\u90FD\u5728\u5730\u94C1\u4E0A\u53D1\u751F\u5BF9\u8BDD10.\u5916\u51FA\u90E8\u5206\u4ECE\u5916\u51FA\u573A\u666F\u5730\u94C1\u7AD9\u51FA\u53E3\u5904\u51FA\u73B0\u533B\u751F\uFF0C\u7136\u540Efadeout\uFF0C\u7136\u540Efadein\u5230\u8BCA\u5BA4\u95E8\u53E3\uFF0C\u548C\u82F1\u91CC\u5BF9\u8BDD11.\u8FDB\u5165\u8BCA\u5BA4\u533B\u751F\u90FD\u5728\u5730\u94C1\u4E0A\u53D1\u751F\u5BF9\u8BDD10.\u5916\u51FA\u90E8\u5206\u4ECE\u5916\u51FA\u573A\u666F\u5730\u94C1\u7AD9\u51FA\u53E3\u5904\u51FA\u73B0\u533B\u751F\uFF0C\u7136\u540Efadeout\uFF0C\u7136\u540Efadein\u5230\u8BCA\u5BA4\u95E8\u53E3\uFF0C\u548C\u82F1\u91CC\u5BF9\u8BDD11.\u8FDB\u5165\u8BCA\u5BA4" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} @@ -373,9 +373,9 @@ MonoBehaviour: m_HorizontalAlignment: 8 m_VerticalAlignment: 512 m_textAlignment: 65535 - m_characterSpacing: 0 + m_characterSpacing: 5 m_wordSpacing: 0 - m_lineSpacing: 0 + m_lineSpacing: 20 m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 @@ -3444,6 +3444,10 @@ PrefabInstance: propertyPath: m_Name value: Clinic System objectReference: {fileID: 0} + - target: {fileID: 5664960779156270250, guid: d61ec1d045b2bfc4bb2db8718f017f2b, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7333995943917754426, guid: d61ec1d045b2bfc4bb2db8718f017f2b, type: 3} propertyPath: m_LocalPosition.x value: 4.6500006 @@ -7624,11 +7628,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2336169013361707238, guid: 7c9077b0433a4cf45812d3d82e129d9d, type: 3} propertyPath: m_LocalPosition.x - value: -30.3 + value: -30.29 objectReference: {fileID: 0} - target: {fileID: 2336169013361707238, guid: 7c9077b0433a4cf45812d3d82e129d9d, type: 3} propertyPath: m_LocalPosition.y - value: -0.01 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2336169013361707238, guid: 7c9077b0433a4cf45812d3d82e129d9d, type: 3} propertyPath: m_LocalPosition.z @@ -7666,6 +7670,14 @@ PrefabInstance: propertyPath: m_Name value: Screen System objectReference: {fileID: 0} + - target: {fileID: 4555452611439640309, guid: 7c9077b0433a4cf45812d3d82e129d9d, type: 3} + propertyPath: title + value: + objectReference: {fileID: 234931396} + - target: {fileID: 4555452611439640309, guid: 7c9077b0433a4cf45812d3d82e129d9d, type: 3} + propertyPath: textRoot + value: + objectReference: {fileID: 1463918794} - target: {fileID: 8484069098866872725, guid: 7c9077b0433a4cf45812d3d82e129d9d, type: 3} propertyPath: m_IsActive value: 1 @@ -9566,7 +9578,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!114 &1211738975 MonoBehaviour: m_ObjectHideFlags: 0 @@ -17313,7 +17325,7 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 3675732557702321100, guid: 685577c7a817bba4ca5a68ec82e49bc1, type: 3} - insertIndex: 3 + insertIndex: -1 addedObject: {fileID: 0} m_SourcePrefab: {fileID: 100100000, guid: 685577c7a817bba4ca5a68ec82e49bc1, type: 3} --- !u!4 &7296266978057047894 @@ -17581,6 +17593,10 @@ PrefabInstance: propertyPath: m_Name value: Editor Mode Func objectReference: {fileID: 0} + - target: {fileID: 4214753503693131867, guid: 13f00ab6092291d49a9312e52873d80b, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7611243318142021168, guid: 13f00ab6092291d49a9312e52873d80b, type: 3} propertyPath: m_LocalPosition.x value: 0 @@ -17621,6 +17637,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 8556345213791081418, guid: 13f00ab6092291d49a9312e52873d80b, type: 3} + propertyPath: m_LocalPosition.x + value: -30.29 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/Scenes/OPTest.unity b/Assets/Scenes/OPTest.unity index dc2fd668b..fb981bcb5 100644 --- a/Assets/Scenes/OPTest.unity +++ b/Assets/Scenes/OPTest.unity @@ -410,141 +410,6 @@ MonoBehaviour: sprite: {fileID: -7059906391879546779, guid: b7c6259423055d3468ee386abcdbeb7e, type: 3} width: 6.3 moveSpeed: -1 ---- !u!1 &223721433 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 223721435} - - component: {fileID: 223721434} - m_Layer: 0 - m_Name: TimelineTest - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!320 &223721434 -PlayableDirector: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 223721433} - m_Enabled: 1 - serializedVersion: 3 - m_PlayableAsset: {fileID: 11400000, guid: 000907d541f055f4682e7ef40b8ef5f7, type: 2} - m_InitialState: 1 - m_WrapMode: 2 - m_DirectorUpdateMode: 1 - m_InitialTime: 0 - m_SceneBindings: [] - m_ExposedReferences: - m_References: - - ebf8de2e64054c54dbb743dbb2835675: {fileID: 333377586} ---- !u!4 &223721435 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 223721433} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.2223406, y: 0.13589421, z: -0.02986741} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 333377588} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &333377586 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 333377588} - - component: {fileID: 333377587} - m_Layer: 0 - m_Name: Square - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!212 &333377587 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 333377586} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 1, y: 1} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!4 &333377588 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 333377586} - 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: 223721435} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &724936450 GameObject: m_ObjectHideFlags: 0 @@ -1157,7 +1022,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &1409397678 Transform: m_ObjectHideFlags: 0 @@ -1351,7 +1216,7 @@ Transform: m_GameObject: {fileID: 1631142626} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -30.29, y: 0, z: -10} + m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -2724,4 +2589,3 @@ SceneRoots: - {fileID: 1631142629} - {fileID: 1409397678} - {fileID: 875433554} - - {fileID: 223721435} diff --git a/Assets/Scenes/Persistence.unity b/Assets/Scenes/Persistence.unity index bcdcc66e4..0a1312626 100644 --- a/Assets/Scenes/Persistence.unity +++ b/Assets/Scenes/Persistence.unity @@ -520,7 +520,7 @@ MonoBehaviour: m_Calls: [] m_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC\u652F\u6301\u5BCC\u6587\u672C" m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -584,7 +584,7 @@ MonoBehaviour: m_margin: {x: 0, y: 0, z: 0, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 + m_hasFontAssetChanged: 1 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!222 &27659202 @@ -7488,7 +7488,7 @@ Transform: m_GameObject: {fileID: 519420028} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.009999275, y: 0, z: -10} + m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -8901,7 +8901,7 @@ MonoBehaviour: m_Calls: [] m_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC\u652F\u6301\u5BCC\u6587\u672C" m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} + m_fontAsset: {fileID: 11400000, guid: 35e5d070d35ad1a45b327e25932d103c, type: 2} m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2} m_fontSharedMaterials: [] m_fontMaterial: {fileID: 0} @@ -8965,7 +8965,7 @@ MonoBehaviour: m_margin: {x: 0, y: 0, z: 0, w: 0} m_isUsingLegacyAnimationComponent: 0 m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 + m_hasFontAssetChanged: 1 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!222 &657549924 @@ -19361,7 +19361,7 @@ Transform: m_GameObject: {fileID: 1575872495} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.009999275, y: 0, z: -10} + m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] diff --git a/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs b/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs index c78d3479f..d453345af 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/ScreenSystem.cs @@ -1,35 +1,32 @@ using System; using System.Collections; +using System.Collections.Generic; +using System.Linq; using AibisDream.Framework; using AibisDream.Kit; -using DG.Tweening; +using AibisDream.Utility; +using Febucci.UI; using TMPro; using UnityEngine; +using UnityEngine.UI; namespace AibisDream.FixSystem { - public class ScreenSystem : MonoBehaviour, IScreen, IDialogView + public class ScreenSystem : MonoBehaviour, IDialogView { - #region 效果参数 - - public float typeSpeed = 0.05f; - public int maxTextLine; - - #endregion - #region 索引 [SerializeField] private TMP_Text title; - [SerializeField] private TMP_Text text; + [SerializeField] private RectTransform textRoot; + [SerializeField] private TMP_Text textForEstimation; private Action _nextStep; - - private TextGenerator _generator; - private TextGenerationSettings _generationSettings; - - private IUnRegister _plugOutRmv; + private GameObject _textItemPrefab; + private Queue _lineQueue; public TaskScreen TaskScreen { get; private set; } + public int maxLineNum = 10; + #endregion private void Awake() @@ -40,19 +37,10 @@ namespace AibisDream.FixSystem private void InitComponentRefs() { - _generator = new TextGenerator(); - _generationSettings = new TextGenerationSettings - { - font = text.font.sourceFontFile, - fontSize = Mathf.RoundToInt(text.fontSize), - lineSpacing = text.lineSpacing, - horizontalOverflow = HorizontalWrapMode.Wrap, - verticalOverflow = VerticalWrapMode.Truncate, - generationExtents = new Vector2(text.rectTransform.rect.width, Mathf.Infinity), - resizeTextForBestFit = false - }; - TaskScreen = GetComponentInChildren(); + _lineQueue = new Queue(); + _textItemPrefab = ResourceKit.LoadAssetSync(ConstRef.ScreenTextName); + // TODO 调整估算文本框的宽度 } private void Register() @@ -71,73 +59,26 @@ namespace AibisDream.FixSystem #region 基础功能 - public void ShowTitle(string targetTitle) + private void ShowTitle(string targetTitle) { title.text = targetTitle; } public IEnumerator ShowText(string targetText) { - // 先换行 - if (!string.IsNullOrEmpty(text.text)) - { - text.text += "\n"; - } - // 先估算新增行数 - var targetLineNum = EstimateLineNum(targetText); - // 截断超出屏幕的部分 - var oldText = ""; - if (targetLineNum + text.textInfo.lineCount > maxTextLine) - { - var cutLineNum = targetLineNum + text.textInfo.lineCount - maxTextLine; - if (cutLineNum <= text.textInfo.lineCount) - { - var lastCharIndex = text.textInfo.lineInfo[cutLineNum - 1].lastCharacterIndex; - if (lastCharIndex + 1 < text.text.Length) - { - oldText = text.text.Substring(lastCharIndex + 1); - } - else - { - oldText = string.Empty; - } - } - } - else - { - oldText = text.text; - } - - - var targetLength = oldText.Length + targetText.Length; - - // 逐个字符添加 - yield return DOTween.To(() => oldText.Length, x => UpdateText(x, targetText, oldText), targetLength, - targetText.Length * typeSpeed).WaitForCompletion(); EnumEventSystem.Global.Send(DialogEventEnum.LineShown); yield return new WaitForSeconds(0.5f); EnumEventSystem.Global.Send(DialogEventEnum.LineEnd); _nextStep.Invoke(); } - - private int EstimateLineNum(string str) - { - var height = _generator.GetPreferredHeight(str, _generationSettings); - var lineHeight = text.fontSize * 1.2f; // 简单估算行高 - - return Mathf.CeilToInt(height / lineHeight); - } - - private void UpdateText(int currentLength, string nextText, string oldText) - { - var appendLength = currentLength - oldText.Length; - text.text = oldText + nextText[..appendLength]; - } public void ClearTextScreen() { - title.text = ""; - text.SetText(""); + while (_lineQueue.Count > 0) + { + var text = _lineQueue.Dequeue(); + Destroy(text.gameObject); + } } #endregion @@ -147,9 +88,31 @@ namespace AibisDream.FixSystem public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, string lineId, bool isAutoSkip = false) { ShowTitle(character.GetActorName()); - StartCoroutine(ShowText(dialogLine)); + // 生成新文本组件 + var textItem = Instantiate(_textItemPrefab, textRoot); + var textItemTypewriter = textItem.GetComponent(); + // 估算文本高度 + var newLineNum = EstimateLineNum(dialogLine); + var oldLineNum = CalcTotalLineNum(); + if (newLineNum + oldLineNum > maxLineNum) + { + Destroy(_lineQueue.Dequeue().gameObject); + } + _lineQueue.Enqueue(textItemTypewriter); + + // 播放文本 + textItemTypewriter.ShowText(dialogLine); + // 播放完成后,顿0.3秒执行下一步 + textItemTypewriter.onTextShowed.AddListener(AutoNextStep); // 每行自动跳过 _nextStep = nextStep; + // 强制更新布局 + LayoutRebuilder.ForceRebuildLayoutImmediate(textRoot); + } + + private void AutoNextStep() + { + } public void ShowOptions(DialogOption[] dialogueOptions) @@ -179,20 +142,17 @@ namespace AibisDream.FixSystem } #endregion - } + + private int EstimateLineNum(string text) + { + textForEstimation.text = text; + textForEstimation.ForceMeshUpdate(); + return textForEstimation.textInfo.linkCount; + } - /// - /// 屏幕接口 - /// - public interface IScreen - { - // 显示标题文字 - void ShowTitle(string title); - - // 显示正文 - IEnumerator ShowText(string text); - - // 清空屏幕 - void ClearTextScreen(); + private int CalcTotalLineNum() + { + return _lineQueue.Select(x => x.GetComponent().textInfo.linkCount).Sum(); + } } } \ No newline at end of file diff --git a/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs b/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs index 738d1df0c..918220c46 100644 --- a/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs +++ b/Assets/Scripts/FixSystemNew/Screen System/ScreenYarnCommand.cs @@ -14,26 +14,26 @@ namespace AibisDream { ScreenSystem.ClearTextScreen(); } - + [YarnCommand("complete_task")] public static void CompleteTask(string lineId) { ScreenSystem.TaskScreen.CompleteTask(lineId); } - + [YarnCommand("clear_tasks")] public static void ClearTasks() { ScreenSystem.TaskScreen.ClearTasks(); } - + [YarnCommand("task_moveIn")] public static IEnumerator ShowTask() { Debug.LogWarning("task_moveIn 已废弃,请尽快删除"); yield break; } - + [YarnCommand("task_moveOut")] public static IEnumerator HideTask() { diff --git a/Assets/Scripts/Framework/ActionKit/ActionKitMonoBehaviourEvents.cs b/Assets/Scripts/Framework/ActionKit/ActionKitMonoBehaviourEvents.cs index 6e07d98af..c989d295b 100644 --- a/Assets/Scripts/Framework/ActionKit/ActionKitMonoBehaviourEvents.cs +++ b/Assets/Scripts/Framework/ActionKit/ActionKitMonoBehaviourEvents.cs @@ -6,9 +6,9 @@ using UnityEngine; namespace AibisDream.Kit { - internal class ActionKitMonoBehaviourEvents : Singleton + public class ActionKitMonoBehaviourEvents : Singleton { - private readonly EasyEvent _onUpdate = new(); + public EasyEvent OnUpdate { get; private set; } private readonly EasyEvent _onFixedUpdate = new(); private readonly EasyEvent _onLateUpdate = new(); private readonly EasyEvent _onGUIEvent = new(); @@ -19,11 +19,17 @@ namespace AibisDream.Kit public override void OnSingletonInit() { hideFlags = HideFlags.HideInHierarchy; + OnUpdate = new EasyEvent(); + } + + public override void OnSingletonDestroy() + { + OnUpdate.UnRegisterAll(); } private void Update() { - _onUpdate?.Trigger(); + OnUpdate?.Trigger(); QueueUpdate(); } @@ -53,11 +59,10 @@ namespace AibisDream.Kit _onApplicationPauseEvent?.Trigger(pauseStatus); } - // protected override void OnApplicationQuit() - // { - // OnApplicationQuitEvent?.Trigger(); - // base.OnApplicationQuit(); - // } + private void OnApplicationQuit() + { + _onApplicationQuitEvent?.Trigger(); + } public void ExecuteCoroutine(IEnumerator coroutine, Action onFinish) { diff --git a/Assets/Scripts/Framework/ActionKit/Queue/MonoActionQueue.cs b/Assets/Scripts/Framework/ActionKit/Queue/MonoActionQueue.cs index 1e8d9a810..6b2cb851f 100644 --- a/Assets/Scripts/Framework/ActionKit/Queue/MonoActionQueue.cs +++ b/Assets/Scripts/Framework/ActionKit/Queue/MonoActionQueue.cs @@ -2,7 +2,7 @@ namespace AibisDream.Kit { - internal interface IActionQueueCallback + public interface IActionQueueCallback { void Call(); } diff --git a/Assets/Scripts/Framework/OtherKit/SandClock.cs b/Assets/Scripts/Framework/OtherKit/SandClock.cs new file mode 100644 index 000000000..c47a78c4c --- /dev/null +++ b/Assets/Scripts/Framework/OtherKit/SandClock.cs @@ -0,0 +1,54 @@ +using System; +using AibisDream.Kit; +using UnityEngine; + +namespace AibisDream.Framework +{ + /// + /// 实现一个类似沙漏的功能,给一个命令就开始倒计时,倒计时结束执行命令 + /// + public class SandClock + { + public float CountDownTime { get; private set; } + public float CurTime { get; private set; } + private readonly Action _endAction; + + public SandClock(float duration, Action endAction) + { + CountDownTime = duration; + _endAction = endAction; + } + + public void Start() + { + ActionKitMonoBehaviourEvents.Instance.OnUpdate.Register(OnUpdate); + CurTime = 0; + } + + public void Stop() + { + CurTime = 0; + ActionKitMonoBehaviourEvents.Instance.OnUpdate.UnRegister(OnUpdate); + _endAction?.Invoke(); + } + + public void Pause() + { + ActionKitMonoBehaviourEvents.Instance.OnUpdate.UnRegister(OnUpdate); + } + + public void Continue() + { + ActionKitMonoBehaviourEvents.Instance.OnUpdate.Register(OnUpdate); + } + + private void OnUpdate() + { + CurTime += Time.deltaTime; + if (CurTime >= CountDownTime) + { + Stop(); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Framework/OtherKit/SandClock.cs.meta b/Assets/Scripts/Framework/OtherKit/SandClock.cs.meta new file mode 100644 index 000000000..f5852f642 --- /dev/null +++ b/Assets/Scripts/Framework/OtherKit/SandClock.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5d28e020c83b488db18eaaaa0a0f352c +timeCreated: 1747810225 \ No newline at end of file diff --git a/Assets/Scripts/Utility/ConstRef.cs b/Assets/Scripts/Utility/ConstRef.cs index bd302363d..1892bcc40 100644 --- a/Assets/Scripts/Utility/ConstRef.cs +++ b/Assets/Scripts/Utility/ConstRef.cs @@ -36,5 +36,7 @@ namespace AibisDream.Utility #endregion public const string TaskItemName = "Task Item"; + + public const string ScreenTextName = "Screen Text"; } } \ No newline at end of file