[Unity]オブジェクトをドラッグして移動する

オブジェクトをドラッグするためには、スクリーンのマウス座標とドラッグするオブジェクト間の距離を求める必要があります。
この距離をドラッグの判定のたびにマウス座標へ適用し変換したものがオブジェクトの移動先座標となります。

//オブジェクトをドラッグする処理
function OnMouseDown() {
//カメラの座標を画面座標系で取得
this.screenPoint = Camera.main.WorldToScreenPoint(transform.position);
//アタッチしたオブジェクトの座標と画面内のタッチ座標との差分を求める(2つの座標の間のベクトルを求める)
this.offset = transform.position
- Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}

function OnMouseDrag() {
//移動したマウスの座標を代入
var currentScreenPoint : Vector3 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
//移動したマウス座標をワールド座標へ変換し,先ほど求めた offset を適用してアタッチしたオブジェクトの座標に直す
var currentPosition : Vector3 = Camera.main.ScreenToWorldPoint(currentScreenPoint) + this.offset;
//セットする
transform.position = currentPosition;
}



参考URL:[Unity] マウスドラッグでオブジェクトを移動させる
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

Translation
fc2ブログ


プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ