//具体类型物体按钮响应 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); }); }
//已创建物体按钮响应 void OnClickOwnItem(MapItemInstance itemInstance) { //编辑面板中选中对象 GameObject itemModel = itemInstance.modelObj; #if UNITY_EDITOR EditorGUIUtility.PingObject(itemModel); Selection.activeGameObject = itemModel; #endif //设置摄像头 Vector3 pos = itemModel.transform.position; Vector3 newCamraPos = pos; newCamraPos.y += 5; newCamraPos.z -= 5; Camera.main.transform.position = newCamraPos; Camera.main.transform.LookAt(itemModel.transform); }
//已创建物体删除按钮 void OnClickOwnItemClose(MapItemInstance itemInstance) { DestroyImmediate(itemInstance.btnObj); DestroyImmediate(itemInstance.modelObj); }