private void OnAnyItemDragEnd(Dnditem item) { UpdateMyItem(); if (mydadItem != null) { mydadItem.MakeRaycast(true); } }
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); } } }
public void DestroyItem() { UpdateMyItem(); if (mydadItem != null) { if (mydadItem != null) { Destroy(mydadItem.gameObject); } } mydadItem = null; }
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(); } }
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; } }
private void OnAnyItemDragStart(Dnditem item) { UpdateMyItem(); if (mydadItem != null) { mydadItem.MakeRaycast(false); if (mydadItem == item) { if (cellType == CellType.DropOnly) { Dnditem.icon.SetActive(false); } } } }
private void ResetConditions() { if (icon != null) { Destroy(icon); } if (OnItemDragEndEvent != null) { OnItemDragEndEvent(this); } draggedItem = null; icon = null; sourceCell = null; }
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; } }
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; } }
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); }
public void UpdateMyItem() { mydadItem = GetComponentInChildren <Dnditem>(); }