//类别按钮响应 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); }); } }
private int eID = 1; //元素ID public void Init(MapEditorItem resData, int resType) { kResType = resType; #if UNITY_EDITOR kIocn.sprite = UnityEditor.AssetDatabase.LoadAssetAtPath <Sprite>("Assets/PublishRes/" + resData.icon + ".png"); #endif resName.text = resData.name; Respath = resData.resPath; kName = resData.name; ResID = resData.ID; eID = MapDataProccess.instance.GetLastID(); }
//具体类型物体按钮响应 void OnClickDetailItem(MapEditorItem mapItemData) { GameObject ownLayoutObj = GameObject.Find("OwnLayout"); //重新设置layout大小 int cellSize = 100; int itemNum = ownLayoutObj.transform.childCount + 1; RectTransform transRect = ownLayoutObj.GetComponent <RectTransform>(); transRect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, cellSize * itemNum); //向own面板添加新的item GameObject newBaseItem = Instantiate(Resources.Load <GameObject>("DesignTools/BaseItem")) as GameObject; newBaseItem.transform.SetParent(ownLayoutObj.transform); newBaseItem.GetComponent <Image>().overrideSprite = Resources.Load <Sprite>(mapItemData.icon); Text itemLabel = newBaseItem.transform.GetChild(0).GetComponent <Text>(); itemLabel.text = mapItemData.name; //载入模型 GameObject resModel = Resources.Load <GameObject>(mapItemData.resPath); GameObject cloneModel = Instantiate(resModel) as GameObject; cloneModel.name = mapItemData.name; cloneModel.AddComponent <InstanceParam>(); //item添加删除按钮 GameObject closeBtn = Instantiate(Resources.Load <GameObject>("DesignTools/CloseBtn")) as GameObject; closeBtn.transform.SetParent(newBaseItem.transform); transRect = closeBtn.GetComponent <RectTransform>(); Vector3 newPosition = transRect.localPosition; newPosition.y += 10; newPosition.x += 5; transRect.localPosition = newPosition; MapItemInstance ownItemInstance = new MapItemInstance(); ownItemInstance.itemData = mapItemData; ownItemInstance.btnObj = newBaseItem; ownItemInstance.modelObj = cloneModel; ownInstanceList.Add(ownItemInstance); closeBtn.GetComponent <Button>().onClick.AddListener(delegate() { OnClickOwnItemClose(ownItemInstance); }); newBaseItem.GetComponent <Button>().onClick.AddListener(delegate() { OnClickOwnItem(ownItemInstance); }); }