diff --git a/SXElectricityInformationAcquisition/Assets/Scenes/工具间Scenes/工具间.unity b/SXElectricityInformationAcquisition/Assets/Scenes/工具间Scenes/工具间.unity index 0508f2e6..9927f9a4 100644 --- a/SXElectricityInformationAcquisition/Assets/Scenes/工具间Scenes/工具间.unity +++ b/SXElectricityInformationAcquisition/Assets/Scenes/工具间Scenes/工具间.unity @@ -11862,6 +11862,9 @@ PrefabInstance: m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 977084344072621036, guid: 7e42ad4821305374ba380adcf42bf09b, type: 3} + insertIndex: -1 + addedObject: {fileID: 1608953930} - targetCorrespondingSourceObject: {fileID: 1842941632173029566, guid: 7e42ad4821305374ba380adcf42bf09b, type: 3} insertIndex: -1 addedObject: {fileID: 822250776} @@ -24473,6 +24476,23 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_IsOn: 0 +--- !u!1 &1608953929 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 977084344072621036, guid: 7e42ad4821305374ba380adcf42bf09b, type: 3} + m_PrefabInstance: {fileID: 822250774} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1608953930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1608953929} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c35a0593d19159449dafa5033c487e8, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1615943079 GameObject: m_ObjectHideFlags: 0 diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/HQB.meta b/SXElectricityInformationAcquisition/Assets/Scripts/HQB.meta new file mode 100644 index 00000000..2e808b01 --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/Scripts/HQB.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 553d1215074c14e42aefdbecfdff9beb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/HQB/ToolRoomToolsContainer.cs b/SXElectricityInformationAcquisition/Assets/Scripts/HQB/ToolRoomToolsContainer.cs new file mode 100644 index 00000000..bf78f196 --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/Scripts/HQB/ToolRoomToolsContainer.cs @@ -0,0 +1,40 @@ +using MotionFramework; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ToolRoomToolsContainer : MonoBehaviour//HQBйߵĸڳʼǷʾ +{ + public static ToolRoomToolsContainer instance; + private Dictionary> _toolsNames; + ToolRoomToolsContainer() { + instance = this; + } + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + private void OnEnable() + { + if (instance != null) + { + _toolsNames = MotionEngine.GetModule().GetToolsPack(); + foreach (var item in _toolsNames) + { + foreach (var item1 in item.Value) + { + item1.SetActive(false); + } + + } + } + } +} diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/HQB/ToolRoomToolsContainer.cs.meta b/SXElectricityInformationAcquisition/Assets/Scripts/HQB/ToolRoomToolsContainer.cs.meta new file mode 100644 index 00000000..b1d89e9c --- /dev/null +++ b/SXElectricityInformationAcquisition/Assets/Scripts/HQB/ToolRoomToolsContainer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5c35a0593d19159449dafa5033c487e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackManager.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackManager.cs index 15d1e92c..77e8a60a 100644 --- a/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackManager.cs +++ b/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackManager.cs @@ -38,6 +38,8 @@ public class ToolsPackWindowItemBtModel public class ToolsPackManager : ModuleSingleton, IModule { private Dictionary> _toolsPack; //在工具间存 + private Dictionary> _toolsPackBackup;//HQB,记录tool的位置,切换场景后toolsPack的obj会销毁,以position作为标记 + private Dictionary> _toolsPackString; //只存值 private Dictionary _toolsPackWindowBtImage; //工具窗口下的按钮图集 private List _toolsPackWindowItemBts; //工具窗口下创建的按钮集合,点击按钮的X用来删除和新增 @@ -55,6 +57,37 @@ public class ToolsPackManager : ModuleSingleton, IModule public List wearTools = new List(); + /// + /// HQB检查恢复_toolsPack,因为没有其他的键值,只能先以位置作为键值 + /// + public void RecoverToolsPack() + { + if (_toolsPack == null || _toolsPack.Count == 0)return; + ToolRoomToolsContainer toolRoomToolsContainer = GameObject.FindObjectOfType(); + if (toolRoomToolsContainer == null) return; + + foreach (var toolItem in _toolsPack) + { + for (int i = 0; i < toolItem.Value.Count; i++) + { + if (toolItem.Value[i] == null) + { + string toolName = toolItem.Key; + Vector3 pos = _toolsPackBackup[toolName][i]; + for (int j = 0; j < toolRoomToolsContainer.transform.childCount; j++) + { + if (toolRoomToolsContainer.transform.GetChild(j).position.Equals(pos)) + { + toolItem.Value[i] = toolRoomToolsContainer.transform.GetChild(j).gameObject; + break; + } + } + + } + } + } + } + // 触发事件的方法 public void OnTriggerStringEvent(string message) { @@ -69,6 +102,7 @@ public class ToolsPackManager : ModuleSingleton, IModule _toolsPack = new Dictionary>(); _toolsPackString = new Dictionary>(); _toolsPackWindowItemBts = new List(); + _toolsPackBackup = new Dictionary>();//HQB初始化 //加载工具窗口按钮 _toolsPackWindowBt = Resources.Load("Prefabs/Window/ToolsPack/ToolsPackWindowItemBt"); @@ -91,11 +125,13 @@ public class ToolsPackManager : ModuleSingleton, IModule public void OnUpdate() { + //Debug.Log("===>ToolsPackManager");//HQB } public void OnDestroy() { _toolsPack.Clear(); + _toolsPackBackup.Clear();//HQB } public void OnGUI() @@ -128,6 +164,7 @@ public class ToolsPackManager : ModuleSingleton, IModule if (!_toolsPack.ContainsKey(toolsName)) { _toolsPack.Add(toolsName, new List() { toolsGame }); + _toolsPackBackup.Add(toolsName, new List() { toolsGame.transform.position });//HQB _toolsPackString.Add(toolsName, new List() { new ToolsPackString() @@ -143,6 +180,7 @@ public class ToolsPackManager : ModuleSingleton, IModule { toolsGame.GetComponent().SetIndex(_toolsPack[toolsName].Count); _toolsPack[toolsName].Add(toolsGame); + _toolsPackBackup[toolsName].Add(toolsGame.transform.position);//HQB _toolsPackString[toolsName].Add( new ToolsPackString() { @@ -179,6 +217,7 @@ public class ToolsPackManager : ModuleSingleton, IModule { _toolsPack.Remove(toolsName); _toolsPackString.Remove(toolsName); + _toolsPackBackup.Remove(toolsName);//HQB } } @@ -203,6 +242,10 @@ public class ToolsPackManager : ModuleSingleton, IModule /// public Dictionary> GetToolsPack() { + if (_toolsPack != null || _toolsPack.Count > 0)//HQB + { + RecoverToolsPack(); + } return _toolsPack; } diff --git a/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackSceneJump.cs b/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackSceneJump.cs index 37350c07..9d063ce4 100644 --- a/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackSceneJump.cs +++ b/SXElectricityInformationAcquisition/Assets/Scripts/ToolsPack/ToolsPackSceneJump.cs @@ -1,4 +1,5 @@ using System; +using DefaultNamespace; using DefaultNamespace.ProcessMode; using MotionFramework; using UnityEngine; @@ -12,11 +13,19 @@ namespace ToolsPack public string Scenename; public void Start() { - this.GetComponent