From a82b020c486540e426d7ef3db708a0279f2d7347 Mon Sep 17 00:00:00 2001 From: bottlefish <781230111@qq.com> Date: Sun, 25 Aug 2024 17:51:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=88=87=E6=8D=A2=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=97=B6=E7=9A=84=E8=A7=86=E8=A7=89=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在刚切换状态时fadeout效果使用旧状态,并且只在进入view的时候进行初始化,而不是在切换状态的时候进行初始化 --- Assets/Prototype/佩佩/Scripts/EyeManager.cs | 28 +++++++++++++++---- .../佩佩/Scripts/EyeTransitionManager.cs | 3 +- Assets/Prototype/佩佩/佩佩视觉模块.unity | 1 + .../Yarn/PeipeiTalk/PeipeiTalk1.yarn | 2 +- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Assets/Prototype/佩佩/Scripts/EyeManager.cs b/Assets/Prototype/佩佩/Scripts/EyeManager.cs index 7d1726566..11d478bb7 100644 --- a/Assets/Prototype/佩佩/Scripts/EyeManager.cs +++ b/Assets/Prototype/佩佩/Scripts/EyeManager.cs @@ -6,7 +6,6 @@ using DG.Tweening; using Yarn.Unity; using System.Linq; - public class EyeManager : MonoBehaviour { [SerializeField] @@ -22,12 +21,16 @@ public class EyeManager : MonoBehaviour { CanImagineColor, CannotImagineColor, - EyeDisorder + EyeDisorder } public ViewCameraManager cameraManager; private IEyeStateEffect eyeStateEffect; + private IEyeStateEffect oldEyeStateEffect; // 新增的字段 + + private bool isFirstSetTargetAfterStateChange=false; // 新增的字段 + private float colorTransitionDuration; [SerializeField] @@ -108,11 +111,17 @@ public class EyeManager : MonoBehaviour float duration = eyeStateEffect.TransitionDuration; - if (currentTarget != null) + if (isFirstSetTargetAfterStateChange) + { + oldEyeStateEffect?.ApplyUnfocusedEffect(currentTarget); + isFirstSetTargetAfterStateChange = false; + } + else { eyeStateEffect?.ApplyUnfocusedEffect(currentTarget); - yield return new WaitForSeconds(duration); } + //eyeStateEffect?.ApplyUnfocusedEffect(currentTarget); + yield return new WaitForSeconds(duration); cameraManager.MoveCameraTo(target.targetTransform, 1f); yield return new WaitForSeconds(1f); @@ -146,6 +155,9 @@ public class EyeManager : MonoBehaviour // Cleanup current state effect eyeStateEffect?.CleanupEffect(currentTarget); + // 保存旧的状态 + oldEyeStateEffect = eyeStateEffect; + switch (state) { case EyeState.CanImagineColor: @@ -163,9 +175,13 @@ public class EyeManager : MonoBehaviour // Update transition duration colorTransitionDuration = eyeStateEffect.TransitionDuration; - - // Initialize new state effect + isFirstSetTargetAfterStateChange = true; + } + public void InitializeEyeEffect() + { + // Initialize new state effect eyeStateEffect.InitializeEffect(currentTarget, cameraManager); + } } diff --git a/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs b/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs index d81a9b499..6d610aa25 100644 --- a/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs +++ b/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs @@ -22,7 +22,7 @@ public class EyeTransitionManager : MonoBehaviour public MemoryProcess memoryProcess; public LineManager lineManager; // LineManager的引用 - + public EyeManager eyeManager; // LineManager的引用 // 视图配置类 [System.Serializable] public class ViewConfig @@ -236,6 +236,7 @@ public class EyeTransitionManager : MonoBehaviour [YarnCommand("start_transition")] public IEnumerator StartTransitionCoroutine(string targetViewStateName) { + eyeManager.InitializeEyeEffect(); ViewState targetViewState; if (!Enum.TryParse(targetViewStateName, out targetViewState)) { diff --git a/Assets/Prototype/佩佩/佩佩视觉模块.unity b/Assets/Prototype/佩佩/佩佩视觉模块.unity index 81e7ba1eb..3564f7dd3 100644 --- a/Assets/Prototype/佩佩/佩佩视觉模块.unity +++ b/Assets/Prototype/佩佩/佩佩视觉模块.unity @@ -9442,6 +9442,7 @@ MonoBehaviour: blackScreenImage: {fileID: 783911289} memoryProcess: {fileID: 1617403347} lineManager: {fileID: 1182811776} + eyeManager: {fileID: 271919487} viewConfigs: - viewPanel: {fileID: 1229487019} activateButton: {fileID: 1887941707} diff --git a/Assets/Resources/Yarn/PeipeiTalk/PeipeiTalk1.yarn b/Assets/Resources/Yarn/PeipeiTalk/PeipeiTalk1.yarn index 6dc69eea7..d71969a6b 100644 --- a/Assets/Resources/Yarn/PeipeiTalk/PeipeiTalk1.yarn +++ b/Assets/Resources/Yarn/PeipeiTalk/PeipeiTalk1.yarn @@ -25,7 +25,7 @@ position: 63,-958 <> <> <> -<> +<> <> ===