From 405954d123196a12f6ffbf11a121e5e1a0de1a4b Mon Sep 17 00:00:00 2001 From: zc <1062808664@qq.com> Date: Wed, 13 Sep 2023 20:15:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/UnityTest/ZXL/Scene/Main.unity | 6 ++--- Assets/UnityTest/ZXL/Scripts/CommonHelper.cs | 1 + .../UnityTest/ZXL/Scripts/ObjectComponent.cs | 4 ++++ .../ZXL/Scripts/ObjectDataComponent.cs | 19 ++++++++++++++-- .../ZXL/Scripts/Process/FirstProcess.cs | 16 +++++++++++++- .../ZXL/Scripts/{ => UI}/DialogueUI.cs | 0 .../ZXL/Scripts/{ => UI}/DialogueUI.cs.meta | 0 Assets/UnityTest/ZXL/Scripts/UI/UIManager.cs | 22 +++++++++++++++++++ 8 files changed, 62 insertions(+), 6 deletions(-) rename Assets/UnityTest/ZXL/Scripts/{ => UI}/DialogueUI.cs (100%) rename Assets/UnityTest/ZXL/Scripts/{ => UI}/DialogueUI.cs.meta (100%) diff --git a/Assets/UnityTest/ZXL/Scene/Main.unity b/Assets/UnityTest/ZXL/Scene/Main.unity index ad0943a..4b25836 100644 --- a/Assets/UnityTest/ZXL/Scene/Main.unity +++ b/Assets/UnityTest/ZXL/Scene/Main.unity @@ -59991,11 +59991,11 @@ MonoBehaviour: uiObjectData: - uiType: 0 ui: {fileID: 1352941224} - - uiType: 0 + - uiType: 1 ui: {fileID: 1448946252} - - uiType: 0 + - uiType: 2 ui: {fileID: 1248219822} - - uiType: 0 + - uiType: 3 ui: {fileID: 834112896} --- !u!1 &1866609136 GameObject: diff --git a/Assets/UnityTest/ZXL/Scripts/CommonHelper.cs b/Assets/UnityTest/ZXL/Scripts/CommonHelper.cs index a589a5f..e543e55 100644 --- a/Assets/UnityTest/ZXL/Scripts/CommonHelper.cs +++ b/Assets/UnityTest/ZXL/Scripts/CommonHelper.cs @@ -46,6 +46,7 @@ namespace UnityTest.ZXL { var highlightEffect = self.GetOrAddComponent(); highlightEffect.highlighted = true; + self.GetComponent().isCanClick = true; } /// diff --git a/Assets/UnityTest/ZXL/Scripts/ObjectComponent.cs b/Assets/UnityTest/ZXL/Scripts/ObjectComponent.cs index ee38710..c3ae27b 100644 --- a/Assets/UnityTest/ZXL/Scripts/ObjectComponent.cs +++ b/Assets/UnityTest/ZXL/Scripts/ObjectComponent.cs @@ -18,6 +18,8 @@ namespace UnityTest.ZXL /// public string desc; + public bool isCanClick; + public void Clicked() { Debug.Log($"点击了{objectName}"); @@ -34,6 +36,8 @@ namespace UnityTest.ZXL #endif public void OnPointerClick(PointerEventData eventData) { + if (!isCanClick) return; + isCanClick = false; Clicked(); } } diff --git a/Assets/UnityTest/ZXL/Scripts/ObjectDataComponent.cs b/Assets/UnityTest/ZXL/Scripts/ObjectDataComponent.cs index ffd7631..7210321 100644 --- a/Assets/UnityTest/ZXL/Scripts/ObjectDataComponent.cs +++ b/Assets/UnityTest/ZXL/Scripts/ObjectDataComponent.cs @@ -4,10 +4,25 @@ using UnityEngine; namespace UnityTest.ZXL { - public class ObjectDataComponent : SerializedMonoBehaviour + public class ObjectDataComponent : BaseAutoMono { public List objectData = new List(); + + public List highlightObjectData = new List(); + + public Dictionary objectComponents = new Dictionary(); + + public GameObject GetObject(HighlightObjectType objectType) + { + var key = objectType.ToString(); + if (objectComponents.TryGetValue(key, out ObjectComponent component)) + { + return component.gameObject; + } + + return null; + } } [System.Serializable] @@ -17,7 +32,7 @@ namespace UnityTest.ZXL public GameObject go; } - public enum HighlightObject + public enum HighlightObjectType { 乙炔气瓶开关, 电脑屏幕, diff --git a/Assets/UnityTest/ZXL/Scripts/Process/FirstProcess.cs b/Assets/UnityTest/ZXL/Scripts/Process/FirstProcess.cs index a3d2e99..9e1c114 100644 --- a/Assets/UnityTest/ZXL/Scripts/Process/FirstProcess.cs +++ b/Assets/UnityTest/ZXL/Scripts/Process/FirstProcess.cs @@ -14,6 +14,14 @@ namespace UnityTest.ZXL base.OnInit(); playable.Stop(); EventManager.Instance.Subscribe(TimelineEventArgs.EventId, TimelineEvent); + EventManager.Instance.Subscribe(ClickObjectEventArgs.EventId, TimelineEvent); + } + + protected override void OnLevel() + { + base.OnLevel(); + EventManager.Instance.Unsubscribe(TimelineEventArgs.EventId, TimelineEvent); + EventManager.Instance.Unsubscribe(ClickObjectEventArgs.EventId, TimelineEvent); } private void TimelineEvent(object sender, GameEventArgs e) @@ -30,8 +38,14 @@ namespace UnityTest.ZXL playable.Play(); yield return isNext; + playable.Pause(); - AnimatorManager.Instance().Get("2-1"); + // 等待点击 + ObjectDataComponent.Instance().GetObject(HighlightObjectType.乙炔气瓶开关).HighlightOpen(); + isNext = false; + + yield return isNext; + playable.Resume(); } // 1-2 diff --git a/Assets/UnityTest/ZXL/Scripts/DialogueUI.cs b/Assets/UnityTest/ZXL/Scripts/UI/DialogueUI.cs similarity index 100% rename from Assets/UnityTest/ZXL/Scripts/DialogueUI.cs rename to Assets/UnityTest/ZXL/Scripts/UI/DialogueUI.cs diff --git a/Assets/UnityTest/ZXL/Scripts/DialogueUI.cs.meta b/Assets/UnityTest/ZXL/Scripts/UI/DialogueUI.cs.meta similarity index 100% rename from Assets/UnityTest/ZXL/Scripts/DialogueUI.cs.meta rename to Assets/UnityTest/ZXL/Scripts/UI/DialogueUI.cs.meta diff --git a/Assets/UnityTest/ZXL/Scripts/UI/UIManager.cs b/Assets/UnityTest/ZXL/Scripts/UI/UIManager.cs index 635276d..b15ec1a 100644 --- a/Assets/UnityTest/ZXL/Scripts/UI/UIManager.cs +++ b/Assets/UnityTest/ZXL/Scripts/UI/UIManager.cs @@ -11,10 +11,32 @@ namespace UnityTest.ZXL public void ShowUI(UIType uiType) { + foreach (var objectData in uiObjectData) + { + if (objectData.uiType == uiType) + { + objectData.ui.gameObject.SetActive(true); + } + } } public void HideUI(UIType uiType) { + foreach (var objectData in uiObjectData) + { + if (objectData.uiType == uiType) + { + objectData.ui.gameObject.SetActive(false); + } + } + } + + public void HideAllUI() + { + foreach (var objectData in uiObjectData) + { + objectData.ui.gameObject.SetActive(false); + } } #if UNITY_EDITOR