From d08e92b26d18a4164e263ed17531d32a64a1f236 Mon Sep 17 00:00:00 2001 From: YangHua <1475658476@qq.com> Date: Thu, 29 Aug 2024 21:18:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/CXX/Devices/Device_Base.cs | 9 ++++ Assets/Scripts/CXX/Tools/Tool_Base.cs | 9 +++- Assets/Scripts/CXX/Tools/Tool_WireStripper.cs | 5 +- .../Project/Manager/LiveSceneManager.cs | 20 ++++++++ .../Scripts/Project/UI/UI_Panel/UI_MenuBar.cs | 47 ++++++++++++++----- 5 files changed, 76 insertions(+), 14 deletions(-) diff --git a/Assets/Scripts/CXX/Devices/Device_Base.cs b/Assets/Scripts/CXX/Devices/Device_Base.cs index b9b1a44..78735ae 100644 --- a/Assets/Scripts/CXX/Devices/Device_Base.cs +++ b/Assets/Scripts/CXX/Devices/Device_Base.cs @@ -59,6 +59,15 @@ public class Device_Base : PermanentTriggerBase this.triggerAction = action; } + public void AddStartAction(Action callback) + { + startAction += callback; + } + public void AddEndAction(Action callback) + { + endAction += callback; + } + /// /// 设置工具回到手中的位置 /// diff --git a/Assets/Scripts/CXX/Tools/Tool_Base.cs b/Assets/Scripts/CXX/Tools/Tool_Base.cs index 3f00d11..7e19832 100644 --- a/Assets/Scripts/CXX/Tools/Tool_Base.cs +++ b/Assets/Scripts/CXX/Tools/Tool_Base.cs @@ -65,7 +65,14 @@ public class Tool_Base : PermanentTriggerBase { this.triggerAction = action; } - + public void AddStartAction(Action callback) + { + startAction += callback; + } + public void AddEndAction(Action callback) + { + endAction += callback; + } /// /// 设置工具回到手中的位置 /// diff --git a/Assets/Scripts/CXX/Tools/Tool_WireStripper.cs b/Assets/Scripts/CXX/Tools/Tool_WireStripper.cs index a131a11..ab9f553 100644 --- a/Assets/Scripts/CXX/Tools/Tool_WireStripper.cs +++ b/Assets/Scripts/CXX/Tools/Tool_WireStripper.cs @@ -19,7 +19,7 @@ public class Tool_WireStripper : Tool_Base base.isMoving = true; transform.parent = null; transform.DORotate(device_Seal.testPosAndRot.eulerAngles, 0.5f); - transform.DOMove(device_Seal.testPosAndRot.position, 1).OnComplete(() => + transform.DOMove(device_Seal.testPosAndRot.position, 1).OnComplete(() => { //播放动画 StopAllCoroutines(); @@ -52,6 +52,7 @@ public class Tool_WireStripper : Tool_Base //剪断 device_Seal.Cut(); isMoving = false; + ReBackHead(); int result = (triggerAction == null ? 0 : triggerAction.Invoke(device_Seal.triggerName, true)); } @@ -68,7 +69,7 @@ public class Tool_WireStripper : Tool_Base Device_Seal ds = hit.transform.GetComponent(); if (ds != null) { - if ((triggerAction == null ? 0 : triggerAction.Invoke(ds.triggerName, false))== 0) + if ((triggerAction == null ? 0 : triggerAction.Invoke(ds.triggerName, false)) == 0) { CutOpen(ds); } diff --git a/Assets/Scripts/Project/Manager/LiveSceneManager.cs b/Assets/Scripts/Project/Manager/LiveSceneManager.cs index 95d3bc7..b87f62d 100644 --- a/Assets/Scripts/Project/Manager/LiveSceneManager.cs +++ b/Assets/Scripts/Project/Manager/LiveSceneManager.cs @@ -25,9 +25,29 @@ public class LiveSceneManager : SingletonMono currentTool.transform.localPosition = spawnToolPos.localPosition; currentTool.transform.localEulerAngles = spawnToolPos.localEulerAngles; if (currentTool.GetComponent()) + { currentTool.GetComponent().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles); + currentTool.GetComponent().AddStartAction(() => + { + tMDTips.gameObject.SetActive(false); + }); + currentTool.GetComponent().AddEndAction(() => + { + tMDTips.gameObject.SetActive(true); + }); + } if (currentTool.GetComponent()) + { currentTool.GetComponent().SetHeadPosAndEulerang(currentTool.transform.localPosition, currentTool.transform.localEulerAngles); + currentTool.GetComponent().AddStartAction(() => + { + tMDTips.gameObject.SetActive(false); + }); + currentTool.GetComponent().AddEndAction(() => + { + tMDTips.gameObject.SetActive(true); + }); + } tMDTips.gameObject.SetActive(true); if (currentTool.name.Equals("工作证")) { diff --git a/Assets/Scripts/Project/UI/UI_Panel/UI_MenuBar.cs b/Assets/Scripts/Project/UI/UI_Panel/UI_MenuBar.cs index e5b03f3..717a655 100644 --- a/Assets/Scripts/Project/UI/UI_Panel/UI_MenuBar.cs +++ b/Assets/Scripts/Project/UI/UI_Panel/UI_MenuBar.cs @@ -57,37 +57,54 @@ public class UI_MenuBar : BasePanel private void SwitchSubProcessStepTriggerID(string triggerID) { + bool isOpen = false; if (triggerID == workOrderName) { GameManager.UIMgr.imageTips.ShowTips(workOrderBtn.GetComponent()); + isOpen = true; } else if (triggerID == disassemblyAssemblyWorkOrderName) { GameManager.UIMgr.imageTips.ShowTips(disassemblyAssemblyWorkOrderBtn.GetComponent()); + isOpen = true; } else if (triggerID == toolKitName) { GameManager.UIMgr.imageTips.ShowTips(toolKitBtn.GetComponent()); + isOpen = true; } else if (triggerID == siteName) { GameManager.UIMgr.imageTips.ShowTips(siteBtn.GetComponent()); + isOpen = true; } else if (triggerID == officeName) { GameManager.UIMgr.imageTips.ShowTips(officeBtn.GetComponent()); + isOpen = true; } else if (triggerID == toolRoomName) { GameManager.UIMgr.imageTips.ShowTips(toolRoomBtn.GetComponent()); + isOpen = true; } else if (triggerID == notifyName) { GameManager.UIMgr.imageTips.ShowTips(notifyBtn.GetComponent()); + isOpen = true; } else { GameManager.UIMgr.imageTips.HideTips(); + isOpen = false; + } + if (isOpen) + { + OpenMenu(); + } + else + { + CloseMenu(); } } @@ -99,11 +116,7 @@ public class UI_MenuBar : BasePanel public void CheckBtnBySceneName(E_SceneType type) { Debug.Log(type.ToString()); - if (GetControl("MenuBar").transform.localPosition.x == 960) - { - GetControl("CloseDefaultBtn").sprite = ExpandSprite; - GetControl("MenuBar").transform.DOLocalMoveX(1070, 0.5f); - } + CloseMenu(); toolRoomBtn.gameObject.SetActive(type != E_SceneType.ToolRoom); siteBtn.gameObject.SetActive(type == E_SceneType.ToolRoom); workOrderBtn.gameObject.SetActive(type == E_SceneType.Office); @@ -114,6 +127,17 @@ public class UI_MenuBar : BasePanel notifyBtn.gameObject.SetActive(type == E_SceneType.Site); } + private void OpenMenu() + { + GetControl("CloseDefaultBtn").sprite = ExpandSprite; + GetControl("MenuBar").rectTransform.DOAnchorPosX(0, 0.5f); + } + + private void CloseMenu() + { + GetControl("MenuBar").rectTransform.DOAnchorPosX(110, 0.5f); + GetControl("CloseDefaultBtn").sprite = CollapseSprite; + } /// /// 倒计时 @@ -128,7 +152,7 @@ public class UI_MenuBar : BasePanel while (countDown > 0) { yield return waitForSeconds; - GetControl("MenuBar").transform.DOLocalMoveX(1070, 0.5f); + CloseMenu(); } } protected override void OnClick(string btnName) @@ -136,12 +160,13 @@ public class UI_MenuBar : BasePanel switch (btnName) { case "CloseDefaultBtn": - GetControl("MenuBar").transform.DOLocalMoveX(960, 0.5f); - GetControl("CloseDefaultBtn").sprite = CollapseSprite; - if (GetControl("MenuBar").transform.localPosition.x == 960) + if (GetControl("MenuBar").rectTransform.anchoredPosition.x == 0) { - GetControl("CloseDefaultBtn").sprite = ExpandSprite; - GetControl("MenuBar").transform.DOLocalMoveX(1070, 0.5f); + CloseMenu(); + } + else if (GetControl("MenuBar").rectTransform.anchoredPosition.x == 110) + { + OpenMenu(); } break; case "OfficeBtn":