Unity, C# マウスでモデルを移動させる方法 7月19日
動作 http://buturi.heteml.jp/student/2016/katayama/Unity/0719.html using UnityEngine; using System.Collections; public class MouseDrag : MonoBehaviour { private Vector3 screenPoint; private Vector3 offset; void OnMouseDown() { //カメラから見たオブジェクトの現在位置を画面位置座標に変換 screenPoint = Camera.main.WorldToScreenPoint(transform.position); //オブジェクトの座標からマウス位置(クリックした位置)を引く offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z)); } void OnMouseDrag() { //ドラッグ時のマウス位置をシーン上の3D空間の座標に変換する Vector3 currentScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z); //上記にクリックした場所の差を足すことで、オブジェクトを移動する座標位置を求める Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScreenPoint) + offset; //オブジェクトの位置を変更する transform.position = currentPosition; } } Vector3 : 与えられた x、y、z 成分で新規のベクトルを作成 OnMouseDown : マウスをしたときに呼び出される (オーバーライド関数) OnMouseDrag : マウスをドラッグしたときに呼び出される (オーバーライド関数) 動作 http://buturi.heteml.jp/student/2016/katayama/Unity/0719.html