Beispiel #1
0
    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();
    }