using UnityEngine; using AX.MessageSystem; using System; using UnityEngine.UI; using System.Collections.Generic; using System.Collections; public class CloneCharacterDisable : MonoBehaviour { public Toggle ToolsToggle; public Toggle ForcesToggle; private Toggle cloneButton; void Start() { cloneButton = GetComponent(); GetComponent().mCloneObjType = (CloneObjType)Enum.Parse(typeof(CloneObjType), "Character");//必要条件是"Character"和克隆的对象类型的字符串同名 MessageDispatcher.AddListener("CloneCharacterDisable", setDisable); MessageDispatcher.AddListener("CloneCharacterShow", show); } private void show(IMessage obj) { if (ToolsToggle) { ToolsToggle.GetComponent().NeedShowToggle = true; ToolsToggle.interactable = true; } if (ForcesToggle) { ForcesToggle.GetComponent().NeedShowToggle = true; ForcesToggle.interactable = true; } cloneButton.isOn = false; cloneButton.interactable = true; InputManager.cloneObjType = CloneObjType.None; } private void OnDestroy() { MessageDispatcher.RemoveListener("CloneCharacterDisable", setDisable); MessageDispatcher.RemoveListener("CloneCharacterShow", show); } private void setDisable(IMessage obj) { if (ToolsToggle) { ToolsToggle.GetComponent().NeedShowToggle = false; ToolsToggle.isOn = false; ToolsToggle.interactable = false; } if (ForcesToggle) { ForcesToggle.GetComponent().NeedShowToggle = false; ForcesToggle.isOn = false; ForcesToggle.interactable = false; } cloneButton.isOn = false; cloneButton.interactable = false; InputManager.cloneObjType = CloneObjType.None; } }