From 55e7a5c18c5df720d40e7d9ba15a4510163bb65e Mon Sep 17 00:00:00 2001
From: Ding Yuntian <1491671119@qq.com>
Date: Mon, 29 Dec 2025 17:42:15 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E7=AB=AF=E9=97=AE=E9=A2=98?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. tap跳转功能实现
2. 跳字优化
---
Assets/AddressableAssetsData/link.xml | 530 +++++++++++++++
Assets/AddressableAssetsData/link.xml.meta | 7 +
.../Language/UIText/UIText Shared Data.asset | 4 +
Assets/Language/UIText/UIText_en.asset | 4 +
Assets/Language/UIText/UIText_ja-JP.asset | 4 +
Assets/Language/UIText/UIText_zh-Hans.asset | 6 +-
.../Plugins/Android/gradleTemplate.properties | 8 +
.../Android/gradleTemplate.properties.meta | 7 +
Assets/Plugins/Android/mainTemplate.gradle | 57 ++
.../Plugins/Android/mainTemplate.gradle.meta | 7 +
.../Plugins/Android/settingsTemplate.gradle | 30 +
.../Android/settingsTemplate.gradle.meta | 7 +
.../Appearances/Appearances Database.asset | 2 +-
.../Data/Appearances/StepAppearance.asset | 366 +----------
.../Appearances/StepAppearance.asset.meta | 2 +-
.../Appearances/Built-in/StepAppearance.cs | 45 ++
.../Built-in/StepAppearance.cs.meta | 11 +
Assets/Scenes/Persistence.unity | 609 +++++++++++++++++-
Assets/ScriptableObjects/TapTapConfig.asset | 20 +
.../ScriptableObjects/TapTapConfig.asset.meta | 8 +
Assets/Scripts/Game Loop/GameManager.cs | 4 +-
Assets/Scripts/Game Loop/TapTapCenter.cs | 82 +++
Assets/Scripts/Game Loop/TapTapCenter.cs.meta | 11 +
Assets/Scripts/Game Loop/TapTapConfig.cs | 19 +
Assets/Scripts/Game Loop/TapTapConfig.cs.meta | 11 +
Assets/Scripts/UI/Panel/InfoPanel.cs | 49 ++
Assets/Scripts/UI/Panel/StartPanel.cs | 17 +
Assets/Scripts/UI/UIManager.cs | 25 +
Assets/Scripts/Utility/ConstRef.cs | 5 +-
Assets/TapSDK.meta | 8 +
Assets/TapSDK/Core.meta | 8 +
Assets/TapSDK/Rep.meta | 8 +
Assets/UI/Art/变体=正圆形, 颜色=品牌蓝@1x.png | 3 +
.../Art/变体=正圆形, 颜色=品牌蓝@1x.png.meta | 166 +++++
Packages/manifest.json | 3 +
Packages/packages-lock.json | 25 +
.../AndroidResolverDependencies.xml | 4 +-
ProjectSettings/ProjectSettings.asset | 10 +-
38 files changed, 1810 insertions(+), 382 deletions(-)
create mode 100644 Assets/AddressableAssetsData/link.xml
create mode 100644 Assets/AddressableAssetsData/link.xml.meta
create mode 100644 Assets/Plugins/Android/gradleTemplate.properties
create mode 100644 Assets/Plugins/Android/gradleTemplate.properties.meta
create mode 100644 Assets/Plugins/Android/mainTemplate.gradle
create mode 100644 Assets/Plugins/Android/mainTemplate.gradle.meta
create mode 100644 Assets/Plugins/Android/settingsTemplate.gradle
create mode 100644 Assets/Plugins/Android/settingsTemplate.gradle.meta
create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs
create mode 100644 Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs.meta
create mode 100644 Assets/ScriptableObjects/TapTapConfig.asset
create mode 100644 Assets/ScriptableObjects/TapTapConfig.asset.meta
create mode 100644 Assets/Scripts/Game Loop/TapTapCenter.cs
create mode 100644 Assets/Scripts/Game Loop/TapTapCenter.cs.meta
create mode 100644 Assets/Scripts/Game Loop/TapTapConfig.cs
create mode 100644 Assets/Scripts/Game Loop/TapTapConfig.cs.meta
create mode 100644 Assets/TapSDK.meta
create mode 100644 Assets/TapSDK/Core.meta
create mode 100644 Assets/TapSDK/Rep.meta
create mode 100644 Assets/UI/Art/变体=正圆形, 颜色=品牌蓝@1x.png
create mode 100644 Assets/UI/Art/变体=正圆形, 颜色=品牌蓝@1x.png.meta
diff --git a/Assets/AddressableAssetsData/link.xml b/Assets/AddressableAssetsData/link.xml
new file mode 100644
index 000000000..60a064567
--- /dev/null
+++ b/Assets/AddressableAssetsData/link.xml
@@ -0,0 +1,530 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Assets/AddressableAssetsData/link.xml.meta b/Assets/AddressableAssetsData/link.xml.meta
new file mode 100644
index 000000000..1ec63d01d
--- /dev/null
+++ b/Assets/AddressableAssetsData/link.xml.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4eb546b551bf291428907acf8b68aba6
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Language/UIText/UIText Shared Data.asset b/Assets/Language/UIText/UIText Shared Data.asset
index 3fade5044..4e5fa310a 100644
--- a/Assets/Language/UIText/UIText Shared Data.asset
+++ b/Assets/Language/UIText/UIText Shared Data.asset
@@ -211,6 +211,10 @@ MonoBehaviour:
m_Key: appinfo
m_Metadata:
m_Items: []
+ - m_Id: 90595287599419392
+ m_Key: start_taptap
+ 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 263bc5750..5f2eea897 100644
--- a/Assets/Language/UIText/UIText_en.asset
+++ b/Assets/Language/UIText/UIText_en.asset
@@ -226,6 +226,10 @@ MonoBehaviour:
m_Localized: All Our Broken Parts
m_Metadata:
m_Items: []
+ - m_Id: 90595287599419392
+ m_Localized: TapTap
+ m_Metadata:
+ m_Items: []
references:
version: 2
RefIds:
diff --git a/Assets/Language/UIText/UIText_ja-JP.asset b/Assets/Language/UIText/UIText_ja-JP.asset
index 8da14e759..8a15bbbd7 100644
--- a/Assets/Language/UIText/UIText_ja-JP.asset
+++ b/Assets/Language/UIText/UIText_ja-JP.asset
@@ -216,6 +216,10 @@ MonoBehaviour:
m_Localized: All Our Broken Parts
m_Metadata:
m_Items: []
+ - m_Id: 90595287599419392
+ m_Localized: TapTap
+ 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 3a48eb9f2..d1771192c 100644
--- a/Assets/Language/UIText/UIText_zh-Hans.asset
+++ b/Assets/Language/UIText/UIText_zh-Hans.asset
@@ -46,7 +46,7 @@ MonoBehaviour:
m_Metadata:
m_Items: []
- m_Id: 22296675749890
- m_Localized: 325268983
+ m_Localized: 1077308854
m_Metadata:
m_Items: []
- m_Id: 22296675749891
@@ -219,6 +219,10 @@ MonoBehaviour:
Broken Parts"
m_Metadata:
m_Items: []
+ - m_Id: 90595287599419392
+ m_Localized: TapTap
+ m_Metadata:
+ m_Items: []
references:
version: 2
RefIds:
diff --git a/Assets/Plugins/Android/gradleTemplate.properties b/Assets/Plugins/Android/gradleTemplate.properties
new file mode 100644
index 000000000..870468097
--- /dev/null
+++ b/Assets/Plugins/Android/gradleTemplate.properties
@@ -0,0 +1,8 @@
+org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
+org.gradle.parallel=true
+unityStreamingAssets=**STREAMING_ASSETS**
+# Android Resolver Properties Start
+android.useAndroidX=true
+android.enableJetifier=true
+# Android Resolver Properties End
+**ADDITIONAL_PROPERTIES**
diff --git a/Assets/Plugins/Android/gradleTemplate.properties.meta b/Assets/Plugins/Android/gradleTemplate.properties.meta
new file mode 100644
index 000000000..96d61b6f4
--- /dev/null
+++ b/Assets/Plugins/Android/gradleTemplate.properties.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a5f63e87459853348b777d18b9793d9a
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Android/mainTemplate.gradle b/Assets/Plugins/Android/mainTemplate.gradle
new file mode 100644
index 000000000..74bf7dd1a
--- /dev/null
+++ b/Assets/Plugins/Android/mainTemplate.gradle
@@ -0,0 +1,57 @@
+apply plugin: 'com.android.library'
+**APPLY_PLUGINS**
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+// Android Resolver Dependencies Start
+ implementation 'com.taptap.sdk:tap-core-unity:4.10.0-beta.1' // Packages/com.taptap.sdk.core/Mobile/Editor/NativeDependencies.xml:7
+ implementation 'com.taptap.sdk:tap-rep:4.10.0-beta.1' // Packages/com.taptap.sdk.rep/Mobile/Editor/NativeDependencies.xml:7
+// Android Resolver Dependencies End
+**DEPS**}
+
+// Android Resolver Exclusions Start
+android {
+ packagingOptions {
+ exclude ('/lib/armeabi/*' + '*')
+ exclude ('/lib/armeabi-v7a/*' + '*')
+ exclude ('/lib/mips/*' + '*')
+ exclude ('/lib/mips64/*' + '*')
+ exclude ('/lib/x86/*' + '*')
+ exclude ('/lib/x86_64/*' + '*')
+ }
+}
+// Android Resolver Exclusions End
+android {
+ ndkPath "**NDKPATH**"
+
+ compileSdkVersion **APIVERSION**
+ buildToolsVersion '**BUILDTOOLS**'
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
+ }
+
+ defaultConfig {
+ minSdkVersion **MINSDKVERSION**
+ targetSdkVersion **TARGETSDKVERSION**
+ ndk {
+ abiFilters **ABIFILTERS**
+ }
+ versionCode **VERSIONCODE**
+ versionName '**VERSIONNAME**'
+ consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
+ }
+
+ lintOptions {
+ abortOnError false
+ }
+
+ aaptOptions {
+ noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ')
+ ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~"
+ }**PACKAGING_OPTIONS**
+}
+**IL_CPP_BUILD_SETUP**
+**SOURCE_BUILD_SETUP**
+**EXTERNAL_SOURCES**
diff --git a/Assets/Plugins/Android/mainTemplate.gradle.meta b/Assets/Plugins/Android/mainTemplate.gradle.meta
new file mode 100644
index 000000000..b998564c7
--- /dev/null
+++ b/Assets/Plugins/Android/mainTemplate.gradle.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 918a97b341f36a14192b4a4c995ebbe3
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Android/settingsTemplate.gradle b/Assets/Plugins/Android/settingsTemplate.gradle
new file mode 100644
index 000000000..01fca023f
--- /dev/null
+++ b/Assets/Plugins/Android/settingsTemplate.gradle
@@ -0,0 +1,30 @@
+pluginManagement {
+ repositories {
+ **ARTIFACTORYREPOSITORY**
+ gradlePluginPortal()
+ google()
+ mavenCentral()
+ }
+}
+
+include ':launcher', ':unityLibrary'
+**INCLUDES**
+
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
+ repositories {
+ **ARTIFACTORYREPOSITORY**
+ google()
+ mavenCentral()
+// Android Resolver Repos Start
+ def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
+ maven {
+ url "https://repo.maven.apache.org/maven2" // Packages/com.taptap.sdk.core/Mobile/Editor/NativeDependencies.xml:6, Packages/com.taptap.sdk.rep/Mobile/Editor/NativeDependencies.xml:6
+ }
+ mavenLocal()
+// Android Resolver Repos End
+ flatDir {
+ dirs "${project(':unityLibrary').projectDir}/libs"
+ }
+ }
+}
diff --git a/Assets/Plugins/Android/settingsTemplate.gradle.meta b/Assets/Plugins/Android/settingsTemplate.gradle.meta
new file mode 100644
index 000000000..f34ca9150
--- /dev/null
+++ b/Assets/Plugins/Android/settingsTemplate.gradle.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fac7e74643c6321469700545679068d6
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset
index 32d141085..3e2ec28ab 100644
--- a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset
+++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/Appearances Database.asset
@@ -21,4 +21,4 @@ MonoBehaviour:
- {fileID: 11400000, guid: 7b4c80c072fa1784ab3223a1084225d4, type: 2}
- {fileID: 11400000, guid: 589fde7a8735fa44f8fe167466fd403b, type: 2}
- {fileID: 11400000, guid: 61d3b78d55f36924eb5182b317f09f50, type: 2}
- - {fileID: 11400000, guid: 66c13343cc1b9dd4e80fc54742bd1b8c, type: 2}
+ - {fileID: 11400000, guid: c2e4e91309f70384db3c8897cb547394, type: 2}
diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset
index 7d6945540..481bb23b6 100644
--- a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset
+++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset
@@ -9,370 +9,8 @@ MonoBehaviour:
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: f29c16c9fe849e442b4f1bab0c32e28a, type: 3}
+ m_Script: {fileID: 11500000, guid: b35610ff4f94b48418a96b669a706775, type: 3}
m_Name: StepAppearance
m_EditorClassIdentifier:
tagID: step
- timeMode:
- startDelay: 0
- useUniformTime: 1
- waveSize: 0
- timeSpeed: 1
- emissionCurve:
- cycles: 1
- duration: 1
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0.04143524
- value: 0.9868164
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.92541504
- value: 1.0178833
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- animationData:
- movementX:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 1
- waveSize: 0
- movementY:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 1
- waveSize: 0
- movementZ:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 1
- waveSize: 0
- scaleX:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 2
- waveSize: 0
- scaleY:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 2
- waveSize: 0
- rotX:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 45
- waveSize: 0
- rotY:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 45
- waveSize: 0
- rotZ:
- enabled: 0
- weightOverTime:
- serializedVersion: 2
- m_Curve:
- - serializedVersion: 3
- time: 0
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 0.5
- value: 0.5
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- - serializedVersion: 3
- time: 1
- value: 0
- inSlope: 0
- outSlope: 0
- tangentMode: 0
- weightedMode: 0
- inWeight: 0
- outWeight: 0
- m_PreInfinity: 1
- m_PostInfinity: 1
- m_RotationOrder: 4
- amplitude: 45
- waveSize: 0
- colorCurve:
- enabled: 0
- colorOverTime:
- serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 0, g: 1, b: 1, a: 1}
- key2: {r: 1, g: 1, b: 1, a: 0}
- key3: {r: 0, g: 0, b: 0, a: 0}
- key4: {r: 0, g: 0, b: 0, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
- key6: {r: 0, g: 0, b: 0, a: 0}
- key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 34502
- ctime2: 65535
- ctime3: 0
- ctime4: 0
- ctime5: 0
- ctime6: 0
- ctime7: 0
- atime0: 0
- atime1: 65535
- atime2: 0
- atime3: 0
- atime4: 0
- atime5: 0
- atime6: 0
- atime7: 0
- m_Mode: 1
- m_ColorSpace: 0
- m_NumColorKeys: 3
- m_NumAlphaKeys: 2
- waveSize: 0
- duration: 1
+ baseDuration: 0.5
diff --git a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset.meta b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset.meta
index 0204a7bf1..a9d09bf55 100644
--- a/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset.meta
+++ b/Assets/Plugins/Febucci/Text Animator/Data/Appearances/StepAppearance.asset.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 66c13343cc1b9dd4e80fc54742bd1b8c
+guid: c2e4e91309f70384db3c8897cb547394
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs
new file mode 100644
index 000000000..d76509254
--- /dev/null
+++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs
@@ -0,0 +1,45 @@
+using Febucci.UI.Core;
+using Febucci.UI.Effects;
+using UnityEngine;
+
+namespace Febucci.UI.Effects
+{
+ [UnityEngine.Scripting.Preserve]
+ [CreateAssetMenu(fileName = "Direct Appearance", menuName = "Text Animator/Animations/Appearances/Direct")]
+ [EffectInfo("step", EffectCategory.Appearances)]
+ public sealed class DirectAppearance : AppearanceScriptableBase
+ {
+ Color32 temp;
+
+ public override void ResetContext(TAnimCore animator)
+ {
+ base.ResetContext(animator);
+ }
+
+ public override void ApplyEffectTo(ref Core.CharacterData character, TAnimCore animator)
+ {
+ float timeProgress = character.passedTime / duration;
+
+ // First half: hide (alpha = 0)
+ // Second half: show (alpha = original)
+ for (int i = 0; i < TextUtilities.verticesPerChar; i++)
+ {
+ temp = character.current.colors[i];
+
+ if (timeProgress < 0.2f)
+ {
+ // First half: completely transparent
+ temp.a = 0;
+ }
+ else
+ {
+ // Second half: use original alpha from source
+ temp.a = character.source.colors[i].a;
+ }
+
+ character.current.colors[i] = temp;
+ }
+ }
+ }
+}
+
diff --git a/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs.meta b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs.meta
new file mode 100644
index 000000000..abd53a7c3
--- /dev/null
+++ b/Assets/Plugins/Febucci/Text Animator/Scripts/Runtime/Scriptables/Animations/Appearances/Built-in/StepAppearance.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b35610ff4f94b48418a96b669a706775
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/Persistence.unity b/Assets/Scenes/Persistence.unity
index bc31dd1b8..86aa75526 100644
--- a/Assets/Scenes/Persistence.unity
+++ b/Assets/Scenes/Persistence.unity
@@ -2283,6 +2283,81 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 7768698746163907630, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3}
m_PrefabInstance: {fileID: 99451801}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &107576965
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 107576966}
+ - component: {fileID: 107576969}
+ - component: {fileID: 107576968}
+ m_Layer: 5
+ m_Name: Image
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &107576966
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 107576965}
+ 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: 572953477}
+ 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: -180, y: 2}
+ m_SizeDelta: {x: 60, y: 60}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &107576968
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 107576965}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 1243325839}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: 90f583f5ccc4c7c49bb484c9b4a47ea3, type: 3}
+ m_Type: 0
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &107576969
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 107576965}
+ m_CullTransparentMesh: 1
--- !u!1 &114645688
GameObject:
m_ObjectHideFlags: 0
@@ -4759,8 +4834,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 125, y: -262.6667}
- m_SizeDelta: {x: 250, y: 80}
+ m_AnchoredPosition: {x: 140, y: -265}
+ m_SizeDelta: {x: 280, y: 80}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &246580519
MonoBehaviour:
@@ -10194,6 +10269,227 @@ GameObject:
m_CorrespondingSourceObject: {fileID: 7768698746163907630, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3}
m_PrefabInstance: {fileID: 1592246586}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &572953476
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 572953477}
+ - component: {fileID: 572953481}
+ - component: {fileID: 572953480}
+ - component: {fileID: 572953479}
+ - component: {fileID: 572953478}
+ m_Layer: 5
+ m_Name: TapTap
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &572953477
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572953476}
+ 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: 107576966}
+ m_Father: {fileID: 1180038149}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 125, y: -377.5}
+ m_SizeDelta: {x: 250, y: 80}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &572953478
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572953476}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 56eb0353ae6e5124bb35b17aff880f16, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_StringReference:
+ m_TableReference:
+ m_TableCollectionName: GUID:994c69bf4b2403043bc9562f2d24ee56
+ m_TableEntryReference:
+ m_KeyId: 90595287599419392
+ m_Key:
+ m_FallbackState: 0
+ m_WaitForCompletion: 0
+ m_LocalVariables: []
+ m_FormatArguments: []
+ m_UpdateString:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 572953480}
+ m_TargetAssemblyTypeName: TMPro.TMP_Text, Unity.TextMeshPro
+ m_MethodName: set_text
+ m_Mode: 0
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName:
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 1
+ references:
+ version: 2
+ RefIds: []
+--- !u!114 &572953479
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572953476}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 572953480}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!114 &572953480
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572953476}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_text: "QQ\u7FA4"
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: ce7a5dae4e01a554ba14c36172700b78, type: 2}
+ m_sharedMaterial: {fileID: -8257615428076326078, guid: ce7a5dae4e01a554ba14c36172700b78, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_colorMode: 3
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: -1183493901
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontSize: 40
+ m_fontSizeBase: 40
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 4096
+ m_textAlignment: 65535
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_linkedTextComponent: {fileID: 0}
+ parentLinkedComponent: {fileID: 0}
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
+ m_VertexBufferAutoSizeReduction: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 61.161907, w: 0}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &572953481
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 572953476}
+ m_CullTransparentMesh: 1
--- !u!1 &576009913
GameObject:
m_ObjectHideFlags: 0
@@ -11971,6 +12267,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 80392929}
+ - {fileID: 2047170513}
m_Father: {fileID: 1009826577}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &719228340
@@ -14346,6 +14643,7 @@ RectTransform:
- {fileID: 961234236}
- {fileID: 398371925}
- {fileID: 1662599903}
+ - {fileID: 1292211951}
m_Father: {fileID: 2091451641}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -14375,6 +14673,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
demoTimer: {fileID: 398371926}
loading: {fileID: 1662599902}
+ messageBox: {fileID: 1292211950}
--- !u!1 &927888433
GameObject:
m_ObjectHideFlags: 0
@@ -16519,7 +16818,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
- m_AnchoredPosition: {x: -180, y: 2}
+ m_AnchoredPosition: {x: -200, y: 2}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1117690821
@@ -17348,12 +17647,13 @@ RectTransform:
- {fileID: 133033013}
- {fileID: 1380796559}
- {fileID: 246580518}
+ - {fileID: 572953477}
m_Father: {fileID: 1216017968}
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: 837, y: 0}
- m_SizeDelta: {x: 246, y: 334}
+ m_SizeDelta: {x: 246, y: 450}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1180038150
MonoBehaviour:
@@ -17374,7 +17674,7 @@ MonoBehaviour:
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
- m_ChildForceExpandWidth: 1
+ m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
@@ -18923,6 +19223,124 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 85815d386fde43dca8b4be1cfd26fe89, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!1 &1292211950
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1292211951}
+ - component: {fileID: 1292211953}
+ - component: {fileID: 1292211952}
+ - component: {fileID: 1292211955}
+ - component: {fileID: 1292211954}
+ m_Layer: 5
+ m_Name: Message Box
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &1292211951
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1292211950}
+ 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: 1316999574}
+ m_Father: {fileID: 923998313}
+ 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: 322}
+ m_SizeDelta: {x: 186.01001, y: 42.01}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1292211952
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1292211950}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 0.392}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1292211953
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1292211950}
+ m_CullTransparentMesh: 1
+--- !u!114 &1292211954
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1292211950}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_HorizontalFit: 2
+ m_VerticalFit: 2
+--- !u!114 &1292211955
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1292211950}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Padding:
+ m_Left: 30
+ m_Right: 30
+ m_Top: 0
+ m_Bottom: 0
+ m_ChildAlignment: 4
+ m_Spacing: 0
+ m_ChildForceExpandWidth: 0
+ m_ChildForceExpandHeight: 0
+ m_ChildControlWidth: 1
+ m_ChildControlHeight: 1
+ m_ChildScaleWidth: 0
+ m_ChildScaleHeight: 0
+ m_ReverseArrangement: 0
--- !u!1 &1299926724
GameObject:
m_ObjectHideFlags: 0
@@ -19109,6 +19527,140 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 85815d386fde43dca8b4be1cfd26fe89, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!1 &1316999573
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1316999574}
+ - component: {fileID: 1316999576}
+ - component: {fileID: 1316999575}
+ m_Layer: 5
+ m_Name: Text (TMP)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1316999574
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1316999573}
+ 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: 1292211951}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 93.005005, y: -21.005}
+ m_SizeDelta: {x: 126.01, y: 42.01}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1316999575
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1316999573}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_text: New Text
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: ce7a5dae4e01a554ba14c36172700b78, type: 2}
+ m_sharedMaterial: {fileID: -8257615428076326078, guid: ce7a5dae4e01a554ba14c36172700b78, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_colorMode: 3
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: -1183493901
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontSize: 28
+ m_fontSizeBase: 28
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 0
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 256
+ m_textAlignment: 65535
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_linkedTextComponent: {fileID: 0}
+ parentLinkedComponent: {fileID: 0}
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
+ m_VertexBufferAutoSizeReduction: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &1316999576
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1316999573}
+ m_CullTransparentMesh: 1
--- !u!1 &1317294297
GameObject:
m_ObjectHideFlags: 0
@@ -19961,7 +20513,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 120, y: -151.33334}
+ m_AnchoredPosition: {x: 120, y: -152.5}
m_SizeDelta: {x: 240, y: 80}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1380796560
@@ -28445,6 +28997,51 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2038437601}
m_CullTransparentMesh: 1
+--- !u!1 &2047170512
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2047170513}
+ - component: {fileID: 2047170514}
+ m_Layer: 0
+ m_Name: TapTap Center
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2047170513
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2047170512}
+ 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: 719228339}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &2047170514
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2047170512}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fb63fcec6dba72e4f94d8c36776bff51, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _tapTapConfig: {fileID: 11400000, guid: 322fba183f2b0254da7b70c366cfc098, type: 2}
--- !u!1 &2056993778
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/ScriptableObjects/TapTapConfig.asset b/Assets/ScriptableObjects/TapTapConfig.asset
new file mode 100644
index 000000000..456aa851b
--- /dev/null
+++ b/Assets/ScriptableObjects/TapTapConfig.asset
@@ -0,0 +1,20 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6707ed120e994c44f8e4d90efba9f25a, type: 3}
+ m_Name: TapTapConfig
+ m_EditorClassIdentifier:
+ clientId: tqmwrvd8bdazsmkcvl
+ clientToken:
+ region: 0
+ preferredLanguage: 0
+ enableLog: 0
+ tapUrl: https://l.taptap.cn/csOWJdsr?channel=rep-rep_xi3lz0oqas9
diff --git a/Assets/ScriptableObjects/TapTapConfig.asset.meta b/Assets/ScriptableObjects/TapTapConfig.asset.meta
new file mode 100644
index 000000000..66e5c7674
--- /dev/null
+++ b/Assets/ScriptableObjects/TapTapConfig.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 322fba183f2b0254da7b70c366cfc098
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Game Loop/GameManager.cs b/Assets/Scripts/Game Loop/GameManager.cs
index 8ff418cff..6e54411d6 100644
--- a/Assets/Scripts/Game Loop/GameManager.cs
+++ b/Assets/Scripts/Game Loop/GameManager.cs
@@ -44,6 +44,8 @@ namespace AibisDream
_currentTalkSceneSo.Register(item => _data.curSceneSoName = item.name);
// 加载SO
Addressables.LoadAssetsAsync("SceneSO", null).Completed += LoadTalkSo;
+ // 初始化TapTap
+ TapTapCenter.Instance.Init();
#if UNITY_EDITOR
if (runMode == RunMode.SingleScene)
@@ -78,7 +80,7 @@ namespace AibisDream
}
else
{
- Debug.LogError("Failed to load textures.");
+ Debug.LogError("Failed to load talkso.");
}
}
diff --git a/Assets/Scripts/Game Loop/TapTapCenter.cs b/Assets/Scripts/Game Loop/TapTapCenter.cs
new file mode 100644
index 000000000..92f43ef2e
--- /dev/null
+++ b/Assets/Scripts/Game Loop/TapTapCenter.cs
@@ -0,0 +1,82 @@
+using System;
+using UnityEngine;
+using AibisDream.Kit;
+using TapSDK.Core;
+using TapSDK.Rep;
+
+namespace AibisDream
+{
+ public class TapTapCenter : Singleton
+ {
+ private bool _isInitialized = false;
+
+ [SerializeField] private TapTapConfig _tapTapConfig;
+
+
+ public override void OnSingletonInit()
+ {
+ base.OnSingletonInit();
+ DontDestroyOnLoad(gameObject);
+ }
+
+ public void Init()
+ {
+#if UNITY_ANDROID || UNITY_IOS
+ try
+ {
+ if (_tapTapConfig == null)
+ {
+ Debug.LogError("TapTapConfig为空,请先配置TapTapConfig");
+ return;
+ }
+
+ // 核心配置
+ TapTapSdkOptions coreOptions = new TapTapSdkOptions
+ {
+ // 客户端 ID,开发者后台获取
+ clientId = _tapTapConfig.clientId,
+ // 客户端令牌,开发者后台获取
+ clientToken = _tapTapConfig.clientToken,
+ // 地区,CN 为国内,Overseas 为海外
+ region = _tapTapConfig.region,
+ // 语言,默认为 Auto,默认情况下,国内为 zh_Hans,海外为 en
+ preferredLanguage = TapTapLanguageType.Auto,
+ // 是否开启日志,Release 版本请设置为 false
+ enableLog = _tapTapConfig.enableLog
+ };
+
+
+ // TapSDK 初始化
+ ActionKit.Sequence()
+ .Task(async () => TapTapSDK.Init(coreOptions))
+ .Callback(() => _isInitialized = true)
+ .Callback(() => Debug.Log("TapTap SDK初始化成功"))
+ .Start(this);
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"TapTap SDK初始化失败: {e}");
+ }
+#else
+ Debug.Log("TapTap登录仅在移动平台可用");
+ _isInitialized = false;
+#endif
+ }
+
+ ///
+ /// 打开Tap指定链接
+ ///
+ ///
+ public void OpenTapUrl(Action callback)
+ {
+ if (!_isInitialized)
+ {
+ Debug.LogError("TapTap SDK未初始化");
+ return;
+ }
+
+ Debug.Log($"打开TapTap链接: {_tapTapConfig.tapUrl}");
+ TapTapRep.Open(_tapTapConfig.tapUrl, callback);
+ }
+ }
+}
diff --git a/Assets/Scripts/Game Loop/TapTapCenter.cs.meta b/Assets/Scripts/Game Loop/TapTapCenter.cs.meta
new file mode 100644
index 000000000..d571e6d6f
--- /dev/null
+++ b/Assets/Scripts/Game Loop/TapTapCenter.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fb63fcec6dba72e4f94d8c36776bff51
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Game Loop/TapTapConfig.cs b/Assets/Scripts/Game Loop/TapTapConfig.cs
new file mode 100644
index 000000000..ac0e47ac2
--- /dev/null
+++ b/Assets/Scripts/Game Loop/TapTapConfig.cs
@@ -0,0 +1,19 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using TapSDK.Core;
+
+namespace AibisDream
+{
+ [CreateAssetMenu(fileName = "TapTapConfig", menuName = "Config/TapTapConfig")]
+ public class TapTapConfig : ScriptableObject
+ {
+ public string clientId;
+ public string clientToken;
+ public TapTapRegionType region;
+ public TapTapLanguageType preferredLanguage;
+ public bool enableLog;
+
+ public string tapUrl;
+ }
+}
diff --git a/Assets/Scripts/Game Loop/TapTapConfig.cs.meta b/Assets/Scripts/Game Loop/TapTapConfig.cs.meta
new file mode 100644
index 000000000..8d444efa3
--- /dev/null
+++ b/Assets/Scripts/Game Loop/TapTapConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6707ed120e994c44f8e4d90efba9f25a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/UI/Panel/InfoPanel.cs b/Assets/Scripts/UI/Panel/InfoPanel.cs
index 5c4fdff95..b99654278 100644
--- a/Assets/Scripts/UI/Panel/InfoPanel.cs
+++ b/Assets/Scripts/UI/Panel/InfoPanel.cs
@@ -1,4 +1,7 @@
+using AibisDream.Kit;
+using TMPro;
using UnityEngine;
+using UnityEngine.UI;
namespace AibisDream.UI
{
@@ -6,6 +9,9 @@ namespace AibisDream.UI
{
[SerializeField] private DemoTimer demoTimer;
[SerializeField] private GameObject loading;
+ [SerializeField] private GameObject messageBox;
+
+ private IActionController _messageActionController;
public void SetTimerActive(bool isOpen)
{
@@ -27,6 +33,49 @@ namespace AibisDream.UI
loading?.SetActive(false);
}
+ ///
+ /// 显示消息,并在指定时间后自动隐藏
+ ///
+ /// 要显示的消息内容
+ /// 显示持续时间(秒),默认2秒
+ public void ShowMessage(string message, float duration = 2f)
+ {
+ // 如果之前有消息正在显示,先取消之前的延时动作
+ if (_messageActionController != null)
+ {
+ _messageActionController.Deinit();
+ _messageActionController = null;
+ }
+
+ if (messageBox != null)
+ {
+ messageBox.GetComponentInChildren().text = message;
+ messageBox.SetActive(true);
+
+ // 使用ActionKit创建延时动作
+ _messageActionController = ActionKit.Delay(duration, () =>
+ {
+ HideMessage();
+ _messageActionController = null;
+ }).Start(this);
+ }
+ }
+
+ public void HideMessage()
+ {
+ // 如果消息正在显示,取消延时动作
+ if (_messageActionController != null)
+ {
+ _messageActionController.Deinit();
+ _messageActionController = null;
+ }
+
+ if (messageBox != null)
+ {
+ messageBox.SetActive(false);
+ }
+ }
+
public void Show()
{
gameObject.SetActive(true);
diff --git a/Assets/Scripts/UI/Panel/StartPanel.cs b/Assets/Scripts/UI/Panel/StartPanel.cs
index a3cf548e5..fa0e94a61 100644
--- a/Assets/Scripts/UI/Panel/StartPanel.cs
+++ b/Assets/Scripts/UI/Panel/StartPanel.cs
@@ -63,6 +63,7 @@ namespace AibisDream.UI
Application.OpenURL(url);
});
others.Find("愿望单").GetComponent