投稿者 tel | 2013年11月22日

Unityの正射影のカメラで移動量を変換する

正射影のカメラにした時に、マウスなどが動いた距離(スクリーン座標)をオブジェクトの移動量(ワールド座標)とかに変換する計算をした。

Unityで正射影のカメラを使うにはカメラのインスペクタでorthographicにする。
このときorthographicSizeを指定するが、この値はビューボリュームの高さの半分になる。

スクリーン座標からワールド座標の変換式を求めると以下のようになる。ratioXとraitoYをスクリーン座標にかけるとワールド座標の値になる。

Camera camera = Camera.main;
float size = camera.orthographicSize;
float ratioY = size * 2.0f / Screen.height;
float ratioX = size * 2.0f / Screen.width * camera.aspect;

例えば画面が10:16の800×1280の端末でポリゴンを画面いっぱいに表示したい場合、
orthographicSizeを20とすると25×40のサイズで表示すればいい。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。