Exemplo n.º 1
0
    //具体类型物体按钮响应
    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); });
    }
Exemplo n.º 2
0
    //已创建物体按钮响应
    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);
    }
Exemplo n.º 3
0
 //已创建物体删除按钮
 void OnClickOwnItemClose(MapItemInstance itemInstance)
 {
     DestroyImmediate(itemInstance.btnObj);
     DestroyImmediate(itemInstance.modelObj);
 }