スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[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


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

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

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。