void Update() { if (Input.GetMouseButtonDown(0)) { Ray mouseRay = GenerateMouseRay(); RaycastHit hit; if (Physics.Raycast(mouseRay.origin, mouseRay.direction, out hit)) { grabObj = hit.transform.gameObject; TouchObjectInteract toi = grabObj.GetComponent <TouchObjectInteract> (); toi.ChangeObjectMaterial(); mouseOffset = hit.transform.position - hit.point; } } else if (Input.GetMouseButton(0) && grabObj) { Vector3 newPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); grabObj.transform.position = new Vector3(newPos.x + mouseOffset.x, newPos.y + mouseOffset.y, grabObj.transform.position.z); } else if (Input.GetMouseButtonUp(0) && grabObj) { TouchObjectInteract toi = grabObj.GetComponent <TouchObjectInteract> (); toi.ChangeObjectMaterial(); grabObj = null; } }
void Update() { if (Input.GetMouseButtonDown(0)) { Ray mouseRay = GenerateMouseRay(); RaycastHit hit; if (Physics.Raycast(mouseRay.origin, mouseRay.direction, out hit)) { grabObj = hit.transform.gameObject; TouchObjectInteract toi = grabObj.GetComponent <TouchObjectInteract> (); toi.ChangeObjectMaterial(); objPlane = new Plane(Camera.main.transform.forward * -1, grabObj.transform.position); //mouse offset calculations Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition); float rayDistance; objPlane.Raycast(mRay, out rayDistance); mouseOffset = grabObj.transform.position - mRay.GetPoint(rayDistance); } } else if (Input.GetMouseButton(0) && grabObj) { Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition); float rayDistance; if (objPlane.Raycast(mRay, out rayDistance)) { grabObj.transform.position = mRay.GetPoint(rayDistance) + mouseOffset; } /* * Vector3 newPos = Camera.main.ScreenToWorldPoint (Input.mousePosition); * grabObj.transform.position = * new Vector3 (newPos.x + mouseOffset.x, newPos.y + mouseOffset.y, grabObj.transform.position.z); */ } else if (Input.GetMouseButtonUp(0) && grabObj) { TouchObjectInteract toi = grabObj.GetComponent <TouchObjectInteract> (); toi.ChangeObjectMaterial(); grabObj = null; } }