内容へ移動
ユーザ用ツール
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
現在位置:
Home
»
wiki
»
Unity
»
Tips
»
025 画面のアスペクト比を固定にする
トレース:
wiki:unity:tips:025
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 025 画面のアスペクト比を固定にする ====== ===== 概要 ===== カメラを調整して、画面のアスペクト比を固定にし、任意の方向に画面を寄せます。 ==== ソースコード ==== <code csharp> using UnityEngine; using System.Collections; public class CameraPortRect : MonoBehaviour { //------------------------------------------------------------- //! @name 画面の位置関係. //------------------------------------------------------------- //@{ public enum ALIGN { CENTER = 0, //!< 中央寄せ. UP, //!< 上寄せ. DOWN, //!< 下寄せ. LEFT, //!< 左寄せ. RIGTH, //!< 右寄せ. }; //@} //------------------------------------------------------------- //! @name メンバー変数. //------------------------------------------------------------- //@{ public float baseHeight = 960.0f; //!< 基準となるスクリーン高さ. public float baseWidth = 640.0f; //!< 基準となるスクリーン幅. public ALIGN screenAligh = ALIGN.CENTER; //!< 画面寄せ //@} //------------------------------------------------------------- //! 開始. //------------------------------------------------------------- void Start() { Camera camera = gameObject.GetComponent<Camera>(); float baseAspect = baseHeight / baseWidth; float nowAspect = (float)Screen.height / (float)Screen.width; float changeAspect; if( baseAspect > nowAspect ) { // 横基準 changeAspect = nowAspect / baseAspect; switch (screenAligh) { case ALIGN.CENTER: camera.rect = new Rect((1 - changeAspect) * 0.5f, 0, changeAspect, 1); break; case ALIGN.LEFT: camera.rect = new Rect((1 - changeAspect) * 0.0f, 0, changeAspect, 1); break; case ALIGN.RIGTH: camera.rect = new Rect((1 - changeAspect) * 1.0f, 0, changeAspect, 1); break; } } else { // 縦基準 changeAspect = baseAspect / nowAspect; switch (screenAligh) { case ALIGN.CENTER: camera.rect = new Rect(0, (1 - changeAspect) * 0.5f, 1, changeAspect); break; case ALIGN.UP: camera.rect = new Rect(0, (1 - changeAspect) * 1.0f, 1, changeAspect); break; case ALIGN.DOWN: camera.rect = new Rect(0, (1 - changeAspect) * 0.0f, 1, changeAspect); break; } } } } </code> このコードをカメラのGameObjectに割り当てれば良いです。
Permalink
wiki/unity/tips/025.txt
· 最終更新: 2014/11/13 05:58 (外部編集)
ページ用ツール
ログイン
文書の表示
文書の先頭へ
印刷
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
oeffentlich