//类别按钮响应 void OnClickTypeItem(MapEditorType mapTypeData) { GameObject detailLayoutObj = GameObject.Find("DetailLayout"); //删除旧的子节点 while (detailLayoutObj.transform.childCount > 0) { DestroyImmediate(detailLayoutObj.transform.GetChild(0).gameObject); } //重新设置layout大小 int cellSize = 100; int typeNum = mapTypeData.children.Count; RectTransform transRect = detailLayoutObj.GetComponent <RectTransform>(); transRect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, cellSize * typeNum); GameObject baseItemMod = Resources.Load <GameObject>("DesignTools/BaseItem"); foreach (MapEditorItem childItem in mapTypeData.children) { GameObject newBaseItem = Instantiate(baseItemMod) as GameObject; newBaseItem.transform.SetParent(detailLayoutObj.transform); newBaseItem.GetComponent <Image>().overrideSprite = Resources.Load <Sprite>(childItem.icon); Text ItemLabel = newBaseItem.transform.GetChild(0).GetComponent <Text>(); ItemLabel.text = childItem.name; Button itemButton = newBaseItem.GetComponent <Button>(); MapEditorItem newMapItemData = childItem; itemButton.onClick.AddListener(delegate() { OnClickDetailItem(newMapItemData); }); } }
public void OnButtonResTool() { if (SelectedGO) { Transform tf = SelectedGO.transform.FindChild("SelectedReg"); DestroyImmediate(tf.gameObject); SelectedGO = null; } rtDialog.transform.parent.localPosition = Vector3.zero; rtDialog.transform.parent.gameObject.SetActive(true); List <MapEditorType> ListMapData = MapDataProccess.instance.allEditorData.editorData; for (int i = 0; i < contents.Length; ++i) { for (int j = contents[i].transform.childCount - 1; j >= 0; j--) { Destroy(contents[i].transform.GetChild(j).gameObject); } } for (int k = 0; k < ListMapData.Count; k++) { MapEditorType mapData = ListMapData[k]; FillContents(k, mapData); } BETween.anchoredPosition(rtDialog.gameObject, 0.3f, new Vector3(0, -500), new Vector3(0, 0)).method = BETweenMethod.easeOut; rtDialog.anchoredPosition = new Vector3(0, -500); BETween.alpha(rtDialog.gameObject, 0.3f, 0, 1.0f).method = BETweenMethod.easeOut; BETween.alpha(rtDialog.transform.parent.gameObject, 0.3f, 0.0f, 0.3f).method = BETweenMethod.easeOut; }
private void FillContents(int id, MapEditorType mapResType) { toggleButtons[id].transform.Find("Label").GetComponent <Text>().text = mapResType.name; List <MapEditorItem> list = mapResType.children; for (int i = 0; i < list.Count; ++i) { MapResItem script = AddResToolItem(prefabResItem, id, i); script.Init(list[i], mapResType.type); } }
void CreateTypePanel() { GameObject typeLayoutObj = GameObject.Find("TypeLayout"); int cellSize = 100; int typeNum = allEditorData.editorData.Count; RectTransform typeRect = typeLayoutObj.GetComponent <RectTransform>(); typeRect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, cellSize * typeNum); GameObject baseItemMod = Resources.Load <GameObject>("DesignTools/BaseItem"); foreach (MapEditorType editorTypeData in allEditorData.editorData) { GameObject newBaseItem = Instantiate(baseItemMod) as GameObject; newBaseItem.transform.SetParent(typeLayoutObj.transform); newBaseItem.GetComponent <Image>().overrideSprite = Resources.Load <Sprite>(editorTypeData.icon); Text itemLabel = newBaseItem.transform.GetChild(0).GetComponent <Text>(); itemLabel.text = editorTypeData.name; Button itemButton = newBaseItem.GetComponent <Button>(); MapEditorType newMapTypeData = editorTypeData; itemButton.onClick.AddListener(delegate() { OnClickTypeItem(newMapTypeData); }); } }