using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class FireEngines : MonoBehaviour { public GameObject Dept; public GameObject Engine; public GameObject Content; //每个中队的消防员人数 private Dictionary Persons = new Dictionary(); //按中队、车类型组织车辆数据(string:组织机构;List:某类型车有多少辆) private Dictionary>> DeptCars = new Dictionary>>(); private List orgList = new List(); public List colors = new List(); // Use this for initialization void Awake() { Content = transform.Find("Viewport/Content").gameObject; colors = new List() { new Color(255/255f,0f,0f,0.9f), new Color(252/255f,0f,255/255f,0.9f), new Color(255/255f,255/255f,0f,0.9f), new Color(0f,0f,255/255f,0.9f), new Color(30/255f,255/255f,0f,0.9f), new Color(0f,213/255f,251/255f,0.9f), new Color(82/255f,143/255f,178/255f,0.9f), new Color(212/255f,157/255f,115/255f,0.9f), new Color(133/255f,168/255f,33/255f,0.9f), new Color(254/255f,212/255f,241/255f,0.9f), new Color(226/255f,208/255f,172/255f,0.9f), new Color(226/255f,185/255f,255/255f,0.9f), new Color(248/255f,126/255f,123/255f,0.9f), new Color(253/255f,251/255f,224/255f,0.9f), new Color(254/255f,194/255f,133/255f,0.9f), new Color(133/255f,133/255f,194/255f,0.9f), new Color(224/255f,102/255f,163/255f,0.9f), new Color(133/255f,194/255f,133/255f,0.9f), new Color(224/255f,224/255f,102/255f,0.9f), new Color(102/255f,194/255f,194/255f,0.9f), }; } // Update is called once per frame void Update() { } private void OnEnable() { Persons = FireEnginesData.Instance.GetAllPersons(); DeptCars = FireEnginesData.Instance.GetAllCas(); CreateEnginesUI(); } private void CreateEnginesUI() { foreach (Transform dept in Content.transform) { Destroy(dept.gameObject); } orgList.Clear(); if (CurrentUserInfo.room != null) { foreach (var item in CurrentUserInfo.room.UserList) { if (item.Org.Level == 4 && !orgList.Contains(item.Org)) { orgList.Add(item.Org); } } } for (int i = 0; i < orgList.Count; i++) { if (DeptCars.ContainsKey(orgList[i].DisplayName)) { GameObject dept = GameObject.Instantiate(Dept, Content.transform) as GameObject; dept.transform.Find("Name/Text").GetComponent().text = orgList[i].DisplayName; dept.GetComponent().org = orgList[i]; foreach (KeyValuePair item in DeptCars[orgList[i].DisplayName]) { GameObject engine = GameObject.Instantiate(Engine, dept.transform.Find("Viewport/Content")) as GameObject; engine.transform.Find("Text").GetComponent().text = item.Key.TypeName + "(" + item.Value + ")"; engine.transform.Find("Toggle/Background").GetComponent().color = colors[i]; engine.GetComponent().org = orgList[i]; engine.GetComponent().tpyeCar = item; engine.transform.Find("Toggle").GetComponent().group = dept.transform.Find("Viewport/Content").GetComponent(); SetCloneType(item.Key.TypeName, engine); if (!CurrentUserInfo.generalCommanding) { engine.transform.Find("Toggle").GetComponent().interactable = false; } } if (Persons.ContainsKey(orgList[i].DisplayName)) { GameObject engine = GameObject.Instantiate(Engine, dept.transform.Find("Viewport/Content")) as GameObject; engine.transform.Find("Text").GetComponent().text = "消防员" + "(" + Persons[orgList[i].DisplayName] + ")"; if (GameSettings.othersSettings.mode == Mode.manoeuvre) { engine.transform.Find("Text").GetComponent().text = "消防员" + "(" + GameSettings.othersSettings.FireEngines_Dic[orgList[i].DisplayName] + ")"; } engine.transform.Find("Toggle/Background").GetComponent().color = colors[i]; engine.GetComponent().org = orgList[i]; engine.transform.Find("Toggle").GetComponent().group = dept.transform.Find("Viewport/Content").GetComponent(); SetCloneType("消防员", engine); if (!CurrentUserInfo.generalCommanding) { engine.transform.Find("Toggle").GetComponent().interactable = false; } } } } } private void SetCloneType(string typeName, GameObject engine) { if (typeName == "水罐车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDWaterTanker; } if (typeName == "泡沫车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDFoamTruck; } if (typeName == "举高车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDAerialTowerTruck; } if (typeName == "高喷车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDHighSprayingTruck; } if (typeName == "云梯车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDLadderTruck; } if (typeName == "排烟车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDSmokeExhaustTruck; } if (typeName == "抢险车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDRescueVehicle; } if (typeName == "器材车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDApparatus; } if (typeName == "照明车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDLightingAppliance; } if (typeName == "供气车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDAirSupplyTruck; } if (typeName == "破拆车") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDForcibleEntryTruck; } if (typeName == "消防员") { engine.transform.Find("Toggle").GetComponent().cloneObjType = CloneObjType.FDFireMan; } } }