using AX.MessageSystem; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; /// /// 流量改变信息,有物体出水时改变其连接的水源的流量 /// public class flowchangeinfo { public bool IsAdd; public long ChangObjId; } public class SkillTollPanel : MonoBehaviour { //消防员技能 private Transform skillTitle; private Transform skillScrollView; //车辆技能 private Transform carSkillTitle; private Transform carScrollView; //固定水泡技能 private Transform FixedWaterTitle; private Transform FixedWaterScrollView; //移动水泡技能 private Transform MoveWaterTitle; private Transform MoveWaterScrollView; //暴风雪炮技能 private Transform SnowPaoTitle; private Transform SnowPaoScrollView; //灭火机器人技能 private Transform FireRobotTitle; private Transform FireRobotScrollView; //水幕水带技能 private Transform WaterCurtainHoseTitle; private Transform WaterCurtainHoseScrollview; public GameObject SelectObj; private static SkillTollPanel instance; public static SkillTollPanel Instance { get { return instance; } } void Start() { instance = this; skillTitle = transform.Find("SkillTitle"); carSkillTitle = transform.Find("CarSkillTitle"); skillScrollView = transform.Find("SkillScrollView"); carScrollView = transform.Find("CarScrollView"); FixedWaterTitle = transform.Find("FixedPaoTitle"); FixedWaterScrollView = transform.Find("FixedPaoScrollView"); MoveWaterTitle = transform.Find("MovePaoTitle"); MoveWaterScrollView = transform.Find("MovePaoScrollView"); SnowPaoTitle = transform.Find("SnowPaoTitle"); SnowPaoScrollView = transform.Find("SnowPaoScrollView"); FireRobotTitle = transform.Find("FireRobotTitle"); FireRobotScrollView = transform.Find("FireRobotScrollView"); WaterCurtainHoseTitle = transform.Find("WaterCurtainHoseTitle"); WaterCurtainHoseScrollview = transform.Find("WaterCurtainHoseScrollview"); MessageDispatcher.AddListener("DelectExpendTool", DelectSetPanel); } /// /// 删除有技能面板的物体时隐藏对应UI /// /// private void DelectSetPanel(IMessage obj) { GameObject delect = (GameObject)obj.Data; if (SelectObj==delect) { //移动水泡 if (SelectObj.GetComponent().gameObjType == CloneObjType.WaterCannon) { SetPanelHide(MoveWaterTitle, MoveWaterScrollView); } //雪炮 else if (SelectObj.GetComponent().gameObjType == CloneObjType.SnowCannon) { SetPanelHide(SnowPaoTitle, SnowPaoScrollView); } //机器人 else if (SelectObj.GetComponent().gameObjType == CloneObjType.FirefightingRobot) { SetPanelHide(FireRobotTitle, FireRobotScrollView); } //水幕水带 else if (SelectObj.GetComponent().gameObjType==CloneObjType.WaterCurtainHose) { SetPanelHide(WaterCurtainHoseTitle, WaterCurtainHoseScrollview); } SelectObj = null; MoveWaterConnonSkillPanelController.Instance.selectMoveWaterConnon = null; SnowConnonSkillPanelController.Instance.SelectSnowConnon = null; FireRobotSkillPanelController.Instance.SelectRobot = null; WaterCurtainHoseSkillPanelController.Instance.SelectWaterCurtainHose = null; } } /// /// 控制技能栏显示 /// /// public void SetShowSkillPanel(GameObject HitObj) { SelectObj = HitObj; if (HitObj.GetComponent() || HitObj.GetComponent() || HitObj.GetComponent() || HitObj.GetComponent()|| HitObj.GetComponent()|| HitObj.GetComponent()) { //如果选择物体时消防员/车/水炮 GetComponent().SelectSparyObj = SelectObj; } if (HitObj.GetComponent()) {//车辆 SetpanelShow(carSkillTitle, carScrollView); TruckSkillPanelController.GetInstance.SkillBind(HitObj.GetComponent()); } else if (HitObj.GetComponent()) {//消防员 SetpanelShow(skillTitle, skillScrollView); FireManSkillPanelController.Instance.SetSkillSelectFireman(SelectObj); } else if (HitObj.GetComponent()) {//固定水泡 SetpanelShow(FixedWaterTitle, FixedWaterScrollView); FixWaterConnonSkillPanelController.Instance.SetFixedWaterConnon(SelectObj); } else if (HitObj.GetComponent()) {//移动水炮 SetpanelShow(MoveWaterTitle, MoveWaterScrollView); MoveWaterConnonSkillPanelController.Instance.SetMoveWaterConnon(SelectObj); } else if (HitObj.GetComponent()) {//暴风雪炮 SetpanelShow(SnowPaoTitle, SnowPaoScrollView); SnowConnonSkillPanelController.Instance.SetSnowConnon(SelectObj); } else if (HitObj.GetComponent()) {//灭火机器人 SetpanelShow(FireRobotTitle, FireRobotScrollView); FireRobotSkillPanelController.Instance.SelectFireRobot(SelectObj); } else if (HitObj.GetComponent().gameObjType==CloneObjType.WaterCurtainHose) {//水幕水带 SetpanelShow(WaterCurtainHoseTitle, WaterCurtainHoseScrollview); WaterCurtainHoseSkillPanelController.Instance.SetWaterCurtainHosen(SelectObj); } else { SetpanelShow(carSkillTitle, carScrollView); if (carSkillTitle.gameObject.activeInHierarchy) { carSkillTitle.gameObject.SetActive(false); } if (carScrollView.gameObject.activeInHierarchy) { SetAllSkillFalse(carScrollView); carScrollView.gameObject.SetActive(false); } //if (skillTitle.gameObject.activeInHierarchy) //{ // skillTitle.gameObject.SetActive(false); //} //if (skillScrollView.gameObject.activeInHierarchy) //{ // SetAllSkillFalse(skillScrollView); // skillScrollView.gameObject.SetActive(false); //} } } /// /// 隐藏当前技能面板 /// public void SetSkillPanelHide() { if (carSkillTitle.gameObject.activeInHierarchy) { //carSkillTitle.GetComponent().isOn = false; carScrollView.GetComponent().sizeDelta = new Vector2(carScrollView.GetComponent().sizeDelta.x, 0); SetAllSkillFalse(carScrollView); carScrollView.gameObject.SetActive(false); carSkillTitle.gameObject.SetActive(false); } if (skillTitle.gameObject.activeInHierarchy) { //skillTitle.GetComponent().isOn = false; skillScrollView.GetComponent().sizeDelta = new Vector2(skillScrollView.GetComponent().sizeDelta.x, 0); SetAllSkillFalse(skillScrollView); skillScrollView.gameObject.SetActive(false); skillTitle.gameObject.SetActive(false); } if (FixedWaterTitle.gameObject.activeInHierarchy) { FixedWaterScrollView.GetComponent().sizeDelta = new Vector2(FixedWaterScrollView.GetComponent().sizeDelta.x,0); SetAllSkillFalse(FixedWaterScrollView); FixedWaterScrollView.gameObject.SetActive(false); FixedWaterTitle.gameObject.SetActive(false); } if (MoveWaterTitle.gameObject.activeInHierarchy) { MoveWaterScrollView.GetComponent().sizeDelta = new Vector2(MoveWaterScrollView.GetComponent().sizeDelta.x, 0); SetAllSkillFalse(MoveWaterScrollView); MoveWaterScrollView.gameObject.SetActive(false); MoveWaterTitle.gameObject.SetActive(false); } if (SnowPaoTitle.gameObject.activeInHierarchy) { SnowPaoScrollView.GetComponent().sizeDelta = new Vector2(SnowPaoScrollView.GetComponent().sizeDelta.x, 0); SetAllSkillFalse(SnowPaoScrollView); SnowPaoScrollView.gameObject.SetActive(false); SnowPaoTitle.gameObject.SetActive(false); } if (FireRobotTitle.gameObject.activeInHierarchy) { FireRobotScrollView.GetComponent().sizeDelta = new Vector2(FireRobotScrollView.GetComponent().sizeDelta.x, 0); SetAllSkillFalse(FireRobotScrollView); FireRobotScrollView.gameObject.SetActive(false); FireRobotTitle.gameObject.SetActive(false); } if (WaterCurtainHoseTitle.gameObject.activeInHierarchy) { WaterCurtainHoseScrollview.GetComponent().sizeDelta = new Vector2(WaterCurtainHoseScrollview.GetComponent().sizeDelta.x, 0); SetAllSkillFalse(WaterCurtainHoseScrollview); WaterCurtainHoseScrollview.gameObject.SetActive(false); WaterCurtainHoseTitle.gameObject.SetActive(false); } if (GameObject.Find("LayWaterPanel")) { GameObject.Find("LayWaterPanel").SetActive(false); } } /// /// 重置inputmanage里的信息 /// /// public void SetAllSkillFalse(Transform Parent) { //Toggle[] all = Parent.GetComponentsInChildren(); //for (int i = 0; i < all.Length; i++) //{ // if (all[i].isOn) // { // all[i].isOn = false; // } //} //if(Parent.GetComponentInChildren(true)) //{ // Parent.GetComponentInChildren().GetComponent().isOn = false; //} if (InputManager.cloneObjType != CloneObjType.None) { InputManager.cloneObjType = CloneObjType.None; } if (InputManager.skill) { InputManager.skill = false; } ///注释掉自动举臂 //if (InputManager.AutoArm) //{ // InputManager.AutoArm = false; // CursorManager.GetInstance.SetNormal(); //} if (InputManager.IsGuidance) { InputManager.IsGuidance = false; } if (InputManager.GuidanceList.Count>0) { InputManager.GuidanceList.Clear(); Transform p_Hitpoint = GameObject.Find("P_AllParent/P_Hitpoint").transform; for (int i = 0; i < p_Hitpoint.childCount; i++) { Destroy(p_Hitpoint.GetChild(i).gameObject); } } if (InputManager.isTagSearchRoom) { InputManager.isTagSearchRoom = false; } InputManager.tagSearchRoomPoint = Vector3.zero; } private void SetpanelShow(Transform title,Transform scroll) { for (int i = 0; i < transform.childCount; i++) { if (title==transform.GetChild(i)) { title.gameObject.SetActive(true); scroll.gameObject.SetActive(true); title.gameObject.GetComponent().isOn = true; scroll.GetComponent().sizeDelta = new Vector2(scroll.GetComponent().sizeDelta.x, title.GetComponent().height); } if (transform.GetChild(i)!=title&&transform.GetChild(i)!=scroll) { if (transform.GetChild(i).name.Contains("Toll")) { //transform.GetChild(i).GetComponent().isOn = false; } else { if (transform.GetChild(i).GetComponent()) { SetAllSkillFalse(transform.GetChild(i)); } transform.GetChild(i).gameObject.SetActive(false); } } } } private void SetPanelHide(Transform title,Transform scroll) { title.GetComponent().isOn = false; title.gameObject.SetActive(false); scroll.gameObject.SetActive(false); } }