// Update is called once per frame void Update() { // the first time you click down if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { gameObjToDrag = hit.collider.gameObject; positionSet = gameObjToDrag.GetComponent <PositionSetting>(); dragObjectOriginal = gameObjToDrag.transform.position; touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z)); offset = touchWorldPos - dragObjectOriginal; if (objToBeNear != null) { Vector3 distanceToObj = touchWorldPos - objToBeNear.transform.position; Debug.Log("distance to object is: " + distanceToObj); Debug.Log("abs x is: " + Mathf.Abs(distanceToObj.x)); Debug.Log("abs y is: " + Mathf.Abs(distanceToObj.y)); if (Mathf.Abs(distanceToObj.x) < distanceAllowable && Mathf.Abs(distanceToObj.y) < distanceAllowable) { draggingMode = true; } else { draggingMode = false; } } else { draggingMode = true; } } } // if you continue to hold the click down if (Input.GetMouseButton(0)) { if (draggingMode) { touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z)); v3target = touchWorldPos - offset; gameObjToDrag.transform.position = new Vector3(v3target.x, v3target.y, dragObjectOriginal.z); } } if (Input.GetMouseButtonUp(0)) { draggingMode = false; } }
public void Execute(string[] param) { Coordinates = this.coordinateRepository.Last(); var cmd = Enum.Parse <ECommand>(param[0].ToUpper()); if (cmd != ECommand.PLACE && Coordinates == null) { logger.LogError("Please make a placement first."); return; } switch (cmd) { case ECommand.REPORT: this.Report(); break; case ECommand.PLACE: var clean = this.validator.IsValid(param); if (clean == null) { return; } this.Place(int.Parse(clean[1]), int.Parse(clean[2]), Enum.Parse <EDirection>(clean[3].ToUpper())); break; case ECommand.MOVE: case ECommand.LEFT: case ECommand.RIGHT: Settings = this.settingRepository.Setting(Coordinates.F); ExecuteAction(cmd); break; default: logger.LogError("Command was not found " + cmd); break; } }
// Update is called once per frame void Update() { #if UNITY_EDITOR if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { tools = hit.collider.gameObject; if (tools == GameObject.FindGameObjectWithTag("tools")) { positionSet = tools.GetComponent <PositionSetting>(); dragObjectOriginal = tools.transform.position; touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z)); offset = touchWorldPos - dragObjectOriginal; //print ("-------------------------------"); //print ("mouse position " + Input.mousePosition); //print ("mouse world position " + touchWorldPos); //print ("camera position " + Camera.main.transform.position); //print ("GameObject position " + tools.transform.position); dragging = true; } } } if (Input.GetMouseButton(0)) { if (dragging && tools == GameObject.FindGameObjectWithTag("tools")) { touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z)); v3target = touchWorldPos - offset; //print ("v3 target " + v3target); tools.transform.position = new Vector3(v3target.x, v3target.y, dragObjectOriginal.z); } } if (Input.GetMouseButtonUp(0)) { dragging = false; if (tools == GameObject.FindGameObjectWithTag("tools")) { tools.transform.position = startingPos; } } #endif foreach (Touch touch in Input.touches) { switch (touch.phase) { case TouchPhase.Began: Ray ray = Camera.main.ScreenPointToRay(touch.position); if (Physics.Raycast(ray, out hit)) { tools = hit.collider.gameObject; if (tools == GameObject.FindGameObjectWithTag("tools")) { positionSet = tools.GetComponent <PositionSetting>(); dragObjectOriginal = tools.transform.position; touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 0)); offset = touchWorldPos - dragObjectOriginal; //print ("-------------------------------"); //print ("mouse position " + Input.mousePosition); //print ("mouse world position " + touchWorldPos); //print ("camera position " + Camera.main.transform.position); //print ("GameObject position " + tools.transform.position); dragging = true; } } break; case TouchPhase.Moved: if (dragging && tools == GameObject.FindGameObjectWithTag("tools")) { touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 0)); v3target = touchWorldPos - offset; //print ("v3 target " + v3target); tools.transform.position = new Vector3(v3target.x, v3target.y, dragObjectOriginal.z); } break; case TouchPhase.Ended: dragging = false; if (tools == GameObject.FindGameObjectWithTag("tools")) { tools.transform.position = startingPos; } break; } } }
// Update is called once per frame void Update() { #if UNITY_EDITOR if(Input.GetMouseButtonDown(0)){ Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Physics.Raycast (ray, out hit)){ tools = hit.collider.gameObject; if(tools == GameObject.FindGameObjectWithTag("tools")){ positionSet = tools.GetComponent<PositionSetting>(); dragObjectOriginal = tools.transform.position; touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z)); offset = touchWorldPos - dragObjectOriginal; //print ("-------------------------------"); //print ("mouse position " + Input.mousePosition); //print ("mouse world position " + touchWorldPos); //print ("camera position " + Camera.main.transform.position); //print ("GameObject position " + tools.transform.position); dragging = true; } } } if(Input.GetMouseButton(0)){ if(dragging && tools == GameObject.FindGameObjectWithTag("tools")){ touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z)); v3target = touchWorldPos - offset; //print ("v3 target " + v3target); tools.transform.position = new Vector3(v3target.x, v3target.y, dragObjectOriginal.z); } } if(Input.GetMouseButtonUp(0)){ dragging = false; if(tools == GameObject.FindGameObjectWithTag("tools")){ tools.transform.position = startingPos; } } #endif foreach (Touch touch in Input.touches){ switch(touch.phase) { case TouchPhase.Began: Ray ray = Camera.main.ScreenPointToRay(touch.position); if(Physics.Raycast (ray, out hit)){ tools = hit.collider.gameObject; if(tools == GameObject.FindGameObjectWithTag("tools")){ positionSet = tools.GetComponent<PositionSetting>(); dragObjectOriginal = tools.transform.position; touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 0)); offset = touchWorldPos - dragObjectOriginal; //print ("-------------------------------"); //print ("mouse position " + Input.mousePosition); //print ("mouse world position " + touchWorldPos); //print ("camera position " + Camera.main.transform.position); //print ("GameObject position " + tools.transform.position); dragging = true; } } break; case TouchPhase.Moved: if(dragging && tools == GameObject.FindGameObjectWithTag("tools")){ touchWorldPos = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 0)); v3target = touchWorldPos - offset; //print ("v3 target " + v3target); tools.transform.position = new Vector3(v3target.x, v3target.y, dragObjectOriginal.z); } break; case TouchPhase.Ended: dragging = false; if(tools == GameObject.FindGameObjectWithTag("tools")){ tools.transform.position = startingPos; } break; } } }