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