//クリックしたオブジェクトの取得 public void IconObjectClick() { GameObject TransportObj = null; Rigidbody ObjectRig; float power = 10.0f; if (Input.GetButton("JoyStick L1")) { Ray ray = Camera.main.ScreenPointToRay(transform.position); RaycastHit hit = new RaycastHit(); Debug.DrawRay(ray.origin, ray.direction * 100, Color.blue, 3, false); if (Physics.Raycast(ray, out hit)) { TransportObj = hit.collider.gameObject; ObjectRig = TransportObj.GetComponent <Rigidbody>(); //nullチェック if (ObjectRig != null) { //タッチしたとき力を加える ObjectRig.AddForce(Vector3.up * power); //オブジェクトの位置をスクリーン座標に変換 Vector3 ObjVec = Camera.main.WorldToScreenPoint(TransportObj.transform.position); //UIの場所とオブジェクトの位置を統合 Vector3 UIPointInScren = new Vector3(transform.position.x, transform.position.y, ObjVec.z); //UIの位置をワールド座標に変換 Vector3 UIPointInWorld = Camera.main.ScreenToWorldPoint(UIPointInScren); //z軸は反映されない UIPointInWorld.z = TransportObj.transform.position.z; //保存したマウスのワールド座標をタッチしたオブジェクトに反映 TransportObj.transform.position = UIPointInWorld; } } } }
//クリックしたオブジェクトの取得 public void ObjectClick() { GameObject TransportObj = null; Rigidbody ObjectRig; float power = 10.0f; if (Input.GetButton("JoyStick L1")) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray, out hit)) { TransportObj = hit.collider.gameObject; ObjectRig = TransportObj.GetComponent <Rigidbody>(); //nullチェック if (ObjectRig != null) { //タッチしたとき力を加える ObjectRig.AddForce(Vector3.up * power); //オブジェクトの位置をスクリーン座標に変換 Vector3 ObjVec = Camera.main.WorldToScreenPoint(TransportObj.transform.position); //マウスの場所とオブジェクトの位置を統合 Vector3 mousePointInScren = new Vector3(Input.mousePosition.x, Input.mousePosition.y, ObjVec.z); //マウスの位置をワールド座標に変換 Vector3 mousePointInWorld = Camera.main.ScreenToWorldPoint(mousePointInScren); //z軸は反映されない mousePointInWorld.z = TransportObj.transform.position.z; //保存したマウスのワールド座標をタッチしたオブジェクトに反映 TransportObj.transform.position = mousePointInWorld; ObjectRig.AddForce(mousePointInWorld); } } } }