diff --git a/Assets/Scripts/Controller/Body3DController.cs b/Assets/Scripts/Controller/Body3DController.cs index 274b4345..828f2d70 100644 --- a/Assets/Scripts/Controller/Body3DController.cs +++ b/Assets/Scripts/Controller/Body3DController.cs @@ -3,7 +3,6 @@ using QFramework.Example; using System; using System.Collections; using System.Collections.Generic; -using System.Drawing; using UnityEngine; using UnityEngine.EventSystems; using XMLTool; @@ -29,6 +28,8 @@ public class Body3DController : MonoSingleton public Status status = Status.Normal; private Vector2 mouseDownPosition; // 记录鼠标按下时的位置 + + Stack activeObjs = new Stack(); public override void OnSingletonInit() { base.OnSingletonInit(); @@ -75,6 +76,8 @@ public class Body3DController : MonoSingleton } } + + public void SetStatus(Status status, bool isAdd) { if (isAdd) @@ -92,7 +95,21 @@ public class Body3DController : MonoSingleton return (this.status & status) == status; } - + public void AddActiveObj(GameObject obj) + { + activeObjs.Push(obj); + } + public GameObject PopActiveObj() + { + if (activeObjs.Count > 0) + { + return activeObjs.Pop(); + } + else + { + return null; + } + } public void Active(bool isActive) { diff --git a/Assets/Scripts/Item/Body3DOjbItem.cs b/Assets/Scripts/Item/Body3DOjbItem.cs index 0c62dce5..9827effe 100644 --- a/Assets/Scripts/Item/Body3DOjbItem.cs +++ b/Assets/Scripts/Item/Body3DOjbItem.cs @@ -39,6 +39,7 @@ public class Body3DOjbItem : MonoBehaviour if (isOn == true) { gameObject.SetActive(false); + Body3DController.Instance.AddActiveObj(gameObject); } } else diff --git a/Assets/Scripts/UI/UIBody3D.cs b/Assets/Scripts/UI/UIBody3D.cs index 405beec1..72c351ad 100644 --- a/Assets/Scripts/UI/UIBody3D.cs +++ b/Assets/Scripts/UI/UIBody3D.cs @@ -33,7 +33,7 @@ namespace QFramework.Example ActiveBack.onClick.AddListener(() => { - + Body3DController.Instance.PopActiveObj()?.gameObject.SetActive(true); }); }