public void OnBeginDrag(PointerEventData eventData) { itemBeingDragged = gameObject; oneClickStartPosition = itemBeingDragged.transform.position; inputPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); pivotOffset = inputPosition - oneClickStartPosition; //Debug.Log ("onbegin()"); if (itemBeingDragged.GetComponent <Collider2D> ().bounds.Intersects(panel.GetComponent <Collider2D> ().bounds)) { if (itemBeingDragged.tag == "Board") { if (boardNum <= 0) { itemBeingDragged = null; return; } if (itemBeingDragged.GetComponent <Image> ().sprite == itemOutSidePanel) { return; } boardNum = boardNum - 1; if (boardNum >= 0) { countTool.text = "x " + boardNum; boardClonedGameObject[boardNum] = GameObject.Instantiate(itemBeingDragged); // Debug.Log ("boardNum: " + boardNum.ToString()); itemBeingDragged = boardClonedGameObject [boardNum]; itemBeingDragged.GetComponent <Image> ().rectTransform.sizeDelta = new Vector2(boardWidth, boardHeight); // itemBeingDragged.transform.position = inputPosition - pivotOffset; // Debug.Log("before setParent" + itemBeingDragged.transform.position); itemBeingDragged.transform.position = inputPosition - pivotOffset; // Debug.Log("after reset to toolbox transform position" + itemBeingDragged.transform.position); itemBeingDragged.transform.SetParent(GameObject.Find("Canvas").transform); // Debug.Log("after set parent" + itemBeingDragged.transform.position); itemBeingDragged.transform.position = new Vector3(itemBeingDragged.transform.position.x, itemBeingDragged.transform.position.y, 2f); // Debug.Log (itemBeingDragged.transform.position); } // image.rectTransform.sizeDelta = new Vector2 (boardWidth, boardHeight); // var sceneCollider = itemBeingDragged.GetComponent<BoxCollider2D> (); // sceneCollider.size = new Vector2 (boardWidth, boardHeight); // sceneCollider.bounds.size = new Vector3 (boardWidth, boardHeight, 0); } else if (itemBeingDragged.tag == "Nail") { // image.rectTransform.sizeDelta = new Vector2 (nailWidth, nailHeight); if (nailNum <= 0) { itemBeingDragged = null; return; } if (itemBeingDragged.GetComponent <Collider2D> ().bounds.Intersects(panel.GetComponent <Collider2D> ().bounds)) { nailNum = nailNum - 1; } if (nailNum >= 0) { countTool.text = "x " + nailNum; nailClonedGameObject[nailNum] = GameObject.Instantiate(itemBeingDragged); itemBeingDragged = nailClonedGameObject [nailNum]; itemBeingDragged.GetComponent <Image> ().rectTransform.sizeDelta = new Vector2(nailWidth, nailHeight); itemBeingDragged.transform.position = inputPosition - pivotOffset; itemBeingDragged.transform.SetParent(GameObject.Find("Canvas").transform); } var sceneCollider = itemBeingDragged.GetComponent <BoxCollider2D> (); sceneCollider.size = new Vector2(nailWidth, nailHeight); } else if (itemBeingDragged.tag == "Box") { if (boxNum <= 0) { itemBeingDragged = null; return; } if (itemBeingDragged.GetComponent <Image> ().sprite == itemOutSidePanel) { return; } boxNum = boxNum - 1; if (boardNum >= 0) { countTool.text = "x " + boxNum; boxClonedGameObject[boxNum] = GameObject.Instantiate(itemBeingDragged); itemBeingDragged = boxClonedGameObject [boxNum]; itemBeingDragged.GetComponent <Image> ().rectTransform.sizeDelta = new Vector2(boxWidth, boxHeight); // itemBeingDragged.transform.position = inputPosition - pivotOffset; // Debug.Log("before setParent" + itemBeingDragged.transform.position); itemBeingDragged.transform.position = inputPosition - pivotOffset; // Debug.Log("after reset to toolbox transform position" + itemBeingDragged.transform.position); itemBeingDragged.transform.SetParent(GameObject.Find("Canvas").transform); // Debug.Log("after set parent" + itemBeingDragged.transform.position); itemBeingDragged.transform.position = new Vector3(itemBeingDragged.transform.position.x, itemBeingDragged.transform.position.y, 2f); // Debug.Log (itemBeingDragged.transform.position); } // image.rectTransform.sizeDelta = new Vector2 (boardWidth, boardHeight); // var sceneCollider = itemBeingDragged.GetComponent<BoxCollider2D> (); // sceneCollider.size = new Vector2 (boardWidth, boardHeight); // sceneCollider.bounds.size = new Vector3 (boardWidth, boardHeight, 0); } if (itemBeingDragged == null) { return; } itemBeingDragged.GetComponent <Image> ().sprite = itemOutSidePanel; costSoFar += costDetails[itemBeingDragged.tag]; costManager.SetCosts(costSoFar); // Debug.Log ("~~~~~~~" + costSoFar); } else { var children = itemBeingDragged.GetComponentsInChildren <Image>(); foreach (Image child in children) { //Debug.Log(child); if (child.name == "RotateButton-right" || child.name == "RotateButton-left") { //Debug.Log ("hah"); child.enabled = false; } } } // itemBeingDragged.transform.SetParent (GameObject.Find ("Canvas").transform); checkNailLeaveTheBoard(); }