Example #1
0
    //类别按钮响应
    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); });
        }
    }
Example #2
0
    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();
    }
Example #3
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); });
    }