コード例 #1
0
 private void OnAnyItemDragEnd(Dnditem item)
 {
     UpdateMyItem();
     if (mydadItem != null)
     {
         mydadItem.MakeRaycast(true);
     }
 }
コード例 #2
0
ファイル: Dnditem.cs プロジェクト: gun2841/guno
    public void OnBeginDrag(PointerEventData eventData)
    {
        if (transform.parent.GetComponent <DndCell>().cellType == DndCell.CellType.DropOnly)
        {
            return;
        }
        if (dragDisabled == false)
        {
            sourceCell  = GetCell();
            draggedItem = this;
            // base 이미지
            icon = new GameObject();
            icon.transform.SetParent(canvas.transform);
            icon.name = "Icon";
            Image myImage = GetComponent <Image>();
            myImage.raycastTarget = false;
            Image iconImage = icon.AddComponent <Image>();
            iconImage.raycastTarget = false;
            iconImage.sprite        = myImage.sprite;
            iconImage.color         = myImage.color;
            RectTransform iconRect = icon.GetComponent <RectTransform>();
            iconImage.type = Image.Type.Sliced;

            // 안쪽 아이콘
            width      = GetComponentInParent <test_info>().width_;
            spine_name = GetComponentInParent <test_info>().name_;
            thema      = GetComponentInParent <test_info>().thema;
            index_     = GetComponentInParent <test_info>().index;
            //
            GameObject con_img = new GameObject();
            con_img.transform.SetParent(icon.transform);
            con_img.name = "con_img";
            Image con_myImage = myImage.GetComponent <Transform>().GetChild(0).GetComponent <Image>();
            con_myImage.raycastTarget = false;
            Image con_iconImage = con_img.AddComponent <Image>();
            con_iconImage.raycastTarget = false;
            con_iconImage.sprite        = con_myImage.sprite;
            RectTransform con_Rect = con_img.GetComponent <RectTransform>();

            con_Rect.sizeDelta     = new Vector2(60, 60);
            con_Rect.localPosition = new Vector2(0, 0);

            //
            iconRect.pivot     = new Vector2(0.5f, 0.5f);
            iconRect.anchorMin = new Vector2(0.5f, 0.5f);
            iconRect.anchorMax = new Vector2(0.5f, 0.5f);
            iconRect.sizeDelta = new Vector2(96 * width, 96);


            if (OnItemDragStartEvent != null)
            {
                OnItemDragStartEvent(this);
            }
        }
    }
コード例 #3
0
 public void DestroyItem()
 {
     UpdateMyItem();
     if (mydadItem != null)
     {
         if (mydadItem != null)
         {
             Destroy(mydadItem.gameObject);
         }
     }
     mydadItem = null;
 }
コード例 #4
0
    public void OnDrop(PointerEventData data)
    {
        RectTransform rt  = GetComponent <RectTransform>();
        Vector3       vt3 = new Vector3(0.5f, 0, 0);
        bool          dir = false;

        if (data.position.x > Camera.main.WorldToScreenPoint(rt.position + vt3).x)
        {
            dir = true;
        }
        else
        {
            dir = false;
        }
        int check_value = buildmgr.Instance.building_check(int.Parse(transform.parent.name), int.Parse(name), dir, Dnditem.draggedItem);

        if (check_value != -1)
        {
        }
        else
        {
            return;
        }

        if (Dnditem.icon != null)
        {
            Dnditem item        = Dnditem.draggedItem;
            DndCell soureceCell = Dnditem.sourceCell;

            if (Dnditem.icon.activeSelf == true)
            {
                if ((item != null) && (soureceCell != this))
                {
                    if (cellType == CellType.DropOnly)
                    {
                        item.target_ = check_value;
                        PlaceItem(item, dir);
                    }
                }
            }
            if (item != null)
            {
                if (item.GetComponentInParent <DndCell>() == null)
                {
                    Destroy(item.gameObject);
                }
            }
            UpdateMyItem();
            soureceCell.UpdateMyItem();
        }
    }
コード例 #5
0
ファイル: buildmgr.cs プロジェクト: gun2841/guno
 void line2_raycast_setactive(int width, int target, Dnditem dnditem)
 {
     for (int i = 0; i < width; i++)
     {
         Color a  = new Color(84 / 255f, 221 / 255f, 254 / 255f, 0);
         Image ti = line2.transform.GetChild(target + i).GetComponent <Image>();
         ti.color = a;
         line2.transform.GetChild(target + i).GetComponent <build_info>().index  = dnditem.index_;
         line2.transform.GetChild(target + i).GetComponent <build_info>().width  = dnditem.width;
         line2.transform.GetChild(target + i).GetComponent <build_info>().name   = dnditem.spine_name;
         line2.transform.GetChild(target + i).GetComponent <build_info>().thema  = dnditem.thema;
         line2.transform.GetChild(target + i).GetComponent <build_info>().target = target;
     }
 }
コード例 #6
0
 private void OnAnyItemDragStart(Dnditem item)
 {
     UpdateMyItem();
     if (mydadItem != null)
     {
         mydadItem.MakeRaycast(false);
         if (mydadItem == item)
         {
             if (cellType == CellType.DropOnly)
             {
                 Dnditem.icon.SetActive(false);
             }
         }
     }
 }
コード例 #7
0
ファイル: Dnditem.cs プロジェクト: gun2841/guno
    private void ResetConditions()
    {
        if (icon != null)
        {
            Destroy(icon);
        }

        if (OnItemDragEndEvent != null)
        {
            OnItemDragEndEvent(this);
        }

        draggedItem = null;
        icon        = null;
        sourceCell  = null;
    }
コード例 #8
0
    public void PlaceItem(Dnditem item, bool dir)
    {
        if (item != null)
        {
            DestroyItem();
            mydadItem = null;
            DndCell cell = item.GetComponentInParent <DndCell>();
            if (cell != null)
            {
                if (cell.unlimitedSource == true)
                {
                    string itemName = item.name;
                    item      = Instantiate(item);
                    item.name = itemName;
                }
            }
            item.transform.SetParent(transform, false);
            if (item.width % 2 == 1)
            {
                item.GetComponent <RectTransform>().sizeDelta = new Vector2(96 * item.width, 96);
            }
            else
            {
                RectTransform rt = item.GetComponent <RectTransform>();
                if (dir)
                {
                    rt.anchoredPosition = new Vector2(rt.anchoredPosition.x + 48, rt.anchoredPosition.y);
                    rt.sizeDelta        = new Vector2(96 * item.width, 96);
                }
                else
                {
                    rt.anchoredPosition = new Vector2(rt.anchoredPosition.x - 48, rt.anchoredPosition.y);
                    rt.sizeDelta        = new Vector2(96 * item.width, 96);
                }
            }

            item.GetComponent <RectTransform>().GetChild(0).GetComponent <RectTransform>().sizeDelta
                = new Vector2(60, 60);



            item.MakeRaycast(true);
            mydadItem = item;
        }
    }
コード例 #9
0
ファイル: buildmgr.cs プロジェクト: gun2841/guno
    void spine_building_(int parent, int target, Dnditem dnditem)
    {
        GameObject      GO;
        SkeletonGraphic skg;

        switch (parent)
        {
        case 1:
            GO  = view1.transform.GetChild(target).gameObject;
            skg = GO.GetComponent <SkeletonGraphic>();
            skg.skeletonDataAsset = Resources.Load("building/" + dnditem.thema + "/" + dnditem.spine_name + "_1") as SkeletonDataAsset;
            skg.startingAnimation = sky_check();
            skg.startingLoop      = true;
            skg.timeScale         = 1f;
            skg.Initialize(true);
            GO.SetActive(true);
            break;

        case 2:
            GO  = view2.transform.GetChild(target).gameObject;
            skg = GO.GetComponent <SkeletonGraphic>();
            skg.skeletonDataAsset = Resources.Load("building/" + dnditem.thema + "/" + dnditem.spine_name + "_2") as SkeletonDataAsset;
            skg.startingAnimation = sky_check();
            skg.startingLoop      = true;
            skg.timeScale         = 1f;
            skg.Initialize(true);
            GO.SetActive(true);
            break;

        case 3:
            GO  = view3.transform.GetChild(target).gameObject;
            skg = GO.GetComponent <SkeletonGraphic>();
            skg.skeletonDataAsset = Resources.Load("building/" + dnditem.thema + "/" + dnditem.spine_name + "_3") as SkeletonDataAsset;
            skg.startingAnimation = sky_check();
            skg.startingLoop      = true;
            skg.timeScale         = 1f;
            skg.Initialize(true);
            GO.SetActive(true);
            break;
        }
    }
コード例 #10
0
ファイル: buildmgr.cs プロジェクト: gun2841/guno
    public int building_check(int Parent, int target, bool dir, Dnditem dnditem)
    {
        if (Parent == 1)
        {
            switch (dnditem.width)
            {
            case 1:
                if (line_1[target - 1] == true)
                {
                    line_1[target - 1] = false;
                    spine_building_(1, target - 1, dnditem);
                    line1_raycast_setactive(1, target - 1, dnditem);
                    return(target - 1);
                }
                break;

            case 2:
                if (dir && target < 10)
                {
                    if (line_1[target - 1] && line_1[target])
                    {
                        line_1[target - 1] = false; line_1[target] = false;
                        spine_building_(1, target - 1, dnditem);
                        line1_raycast_setactive(2, target - 1, dnditem);
                        return(target - 1);
                    }
                }
                else if (!dir && target > 1)
                {
                    if (line_1[target - 1] && line_1[target - 2])
                    {
                        line_1[target - 1] = false; line_1[target - 2] = false;
                        spine_building_(1, target - 2, dnditem);
                        line1_raycast_setactive(2, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                break;

            case 3:
                if (target < 10 && target > 1)
                {
                    if (line_1[target - 2] && line_1[target - 1] && line_1[target])
                    {
                        line_1[target - 2] = line_1[target - 1] = line_1[target] = false;
                        spine_building_(1, target - 2, dnditem);
                        line1_raycast_setactive(3, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                break;

            case 4:
                if (dir && target < 9 && target > 1)
                {
                    if (line_1[target - 1] && line_1[target] && line_1[target + 1] && line_1[target - 2])
                    {
                        line_1[target - 2] = line_1[target - 1] = line_1[target] = line_1[target + 1] = false;
                        spine_building_(1, target - 2, dnditem);
                        line1_raycast_setactive(4, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                if (!dir && target < 10 && target > 2)
                {
                    if (line_1[target - 3] && line_1[target - 2] && line_1[target] && line_1[target - 1])
                    {
                        line_1[target - 3] = line_1[target - 2] = line_1[target] = line_1[target - 1] = false;
                        spine_building_(1, target - 3, dnditem);
                        line1_raycast_setactive(4, target - 3, dnditem);
                        return(target - 3);
                    }
                }
                break;

            case 5:
                if (target < 9 && target > 2)
                {
                    if (line_1[target - 3] && line_1[target - 2] && line_1[target - 1] && line_1[target] && line_1[target + 1])
                    {
                        line_1[target - 3] = line_1[target - 2] = line_1[target - 1] = line_1[target] = line_1[target + 1] = false;
                        spine_building_(1, target - 3, dnditem);
                        line1_raycast_setactive(5, target - 3, dnditem);
                        return(target - 3);
                    }
                }
                break;
            }
        }
        else if (Parent == 2)
        {
            switch (dnditem.width)
            {
            case 1:
                if (line_2[target - 1] == true)
                {
                    line_2[target - 1] = false;
                    spine_building_(2, target - 1, dnditem);
                    line2_raycast_setactive(1, target - 1, dnditem);
                    return(target - 1);
                }
                break;

            case 2:
                if (dir && target < 16)
                {
                    if (line_2[target - 1] && line_2[target])
                    {
                        line_2[target - 1] = line_2[target] = false;
                        spine_building_(2, target - 1, dnditem);
                        line2_raycast_setactive(2, target - 1, dnditem);
                        return(target - 1);
                    }
                }
                else if (!dir && target > 1)
                {
                    if (line_2[target - 1] && line_2[target - 2])
                    {
                        line_2[target - 1] = line_2[target - 2] = false;
                        spine_building_(2, target - 2, dnditem);
                        line2_raycast_setactive(2, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                break;

            case 3:
                if (target < 16 && target > 1)
                {
                    if (line_2[target - 2] && line_2[target - 1] && line_2[target])
                    {
                        line_2[target - 2] = line_2[target - 1] = line_2[target] = false;
                        spine_building_(2, target - 2, dnditem);
                        line2_raycast_setactive(3, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                break;

            case 4:
                if (dir && target < 15 && target > 1)
                {
                    if (line_2[target - 1] && line_2[target] && line_2[target + 1] && line_2[target - 2])
                    {
                        line_2[target - 2] = line_2[target - 1] = line_2[target] = line_2[target + 1] = false;
                        spine_building_(2, target - 2, dnditem);
                        line2_raycast_setactive(4, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                if (!dir && target < 16 && target > 2)
                {
                    if (line_2[target - 3] && line_2[target - 2] && line_2[target] && line_2[target - 1])
                    {
                        line_2[target - 3] = line_2[target - 2] = line_2[target] = line_2[target - 1] = false;
                        spine_building_(2, target - 3, dnditem);
                        line2_raycast_setactive(4, target - 3, dnditem);
                        return(target - 3);
                    }
                }
                break;

            case 5:
                if (target < 15 && target > 2)
                {
                    if (line_2[target - 3] && line_2[target - 2] && line_2[target - 1] && line_2[target] && line_2[target + 1])
                    {
                        line_2[target - 3] = line_2[target - 2] = line_2[target - 1] = line_2[target] = line_2[target + 1] = false;
                        spine_building_(2, target - 3, dnditem);
                        line2_raycast_setactive(5, target - 3, dnditem);
                        return(target - 3);
                    }
                }
                break;
            }
        }
        else if (Parent == 3)
        {
            switch (dnditem.width)
            {
            case 1:
                if (line_3[target - 1] == true)
                {
                    line_3[target - 1] = false;
                    spine_building_(3, target - 1, dnditem);
                    line3_raycast_setactive(1, target - 1, dnditem);
                    return(target - 1);
                }
                break;

            case 2:
                if (dir && target < 20)
                {
                    if (line_3[target - 1] && line_3[target])
                    {
                        line_3[target - 1] = line_3[target] = false;
                        spine_building_(3, target - 1, dnditem);
                        line3_raycast_setactive(2, target - 1, dnditem);
                        return(target - 1);
                    }
                }
                else if (!dir && target > 1)
                {
                    if (line_3[target - 1] && line_3[target - 2])
                    {
                        line_3[target - 1] = line_3[target - 2] = false;
                        spine_building_(3, target - 2, dnditem);
                        line3_raycast_setactive(2, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                break;

            case 3:
                if (target < 20 && target > 1)
                {
                    if (line_3[target - 2] && line_3[target - 1] && line_3[target])
                    {
                        line_3[target - 2] = line_3[target - 1] = line_3[target] = false;
                        spine_building_(3, target - 2, dnditem);
                        line3_raycast_setactive(3, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                break;

            case 4:
                if (dir && target < 19 && target > 1)
                {
                    if (line_3[target - 1] && line_3[target] && line_3[target + 1] && line_3[target - 2])
                    {
                        line_3[target - 2] = line_3[target - 1] = line_3[target] = line_3[target + 1] = false;
                        spine_building_(3, target - 2, dnditem);
                        line3_raycast_setactive(4, target - 2, dnditem);
                        return(target - 2);
                    }
                }
                if (!dir && target < 20 && target > 2)
                {
                    if (line_3[target - 3] && line_3[target - 2] && line_3[target] && line_3[target - 1])
                    {
                        line_3[target - 3] = line_3[target - 2] = line_3[target] = line_3[target - 1] = false;
                        spine_building_(3, target - 3, dnditem);
                        line3_raycast_setactive(4, target - 3, dnditem);
                        return(target - 3);
                    }
                }
                break;

            case 5:
                if (target < 19 && target > 2)
                {
                    if (line_3[target - 3] && line_3[target - 2] && line_3[target - 1] && line_3[target] && line_3[target + 1])
                    {
                        line_3[target - 3] = line_3[target - 2] = line_3[target - 1] = line_3[target] = line_3[target + 1] = false;
                        spine_building_(3, target - 3, dnditem);
                        line3_raycast_setactive(5, target - 3, dnditem);
                        return(target - 3);
                    }
                }
                break;
            }
        }
        return(-1);
    }
コード例 #11
0
 public void UpdateMyItem()
 {
     mydadItem = GetComponentInChildren <Dnditem>();
 }