内容へ移動
ユーザ用ツール
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
現在位置:
Home
»
wiki
»
Unity
»
Tips
»
051 Spriteの画面解像度対応
トレース:
wiki:unity:tips:051
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 051 Spriteの画面解像度対応 ====== ===== 概要 ===== Spriteのサイズや位置を画面解像度に合わせて調整します。 ==== ソースコード ==== <code csharp> using UnityEngine; using System.Collections; public class CameraScript : MonoBehaviour { public const float PixelToUnits = 100.0f; // ゲーム内解像度 public const int BaseScreenWidth = 640; public const int BaseScreenHeight = 960; void Awake() { Camera cam = gameObject.GetComponent<Camera>(); cam.orthographicSize = BaseScreenHeight / PixelToUnits / 2; float baseAspect = (float)BaseScreenHeight / (float)BaseScreenWidth; float nowAspect = (float)Screen.height/(float)Screen.width; float changeAspect; if( baseAspect > nowAspect ) { changeAspect = nowAspect / baseAspect; cam.rect = new Rect( ( 1.0f - changeAspect ) * 0.5f, 0.0f, changeAspect, 1.0f ); } else { changeAspect = baseAspect / nowAspect; cam.rect = new Rect( 0.0f, ( 1.0f - changeAspect ) * 0.5f, 1.0f, changeAspect ); } } } </code> orthographicSize とrectを調整しています。これで解像度に合わせたサイズに描画されます。 ==== 座標設定に関して ==== 座標設定用の関数を用意します。 <code csharp> public void SetPos ( ref GameObject _obj, float _posX, float _posY ) { float fPixelToUnits = CameraScript.PixelToUnits; float baseScreenWidth = CameraScript.BaseScreenWidth; float baseScreenHeight = CameraScript.BaseScreenHeight; Vector2 topleft = new Vector2 ( -(( baseScreenWidth * 0.5f ) / fPixelToUnits ), (( baseScreenHeight * 0.5f ) / fPixelToUnits ) ); Vector2 offset = new Vector2 ( (( _posX ) / fPixelToUnits ), -(( _posY ) / fPixelToUnits ) ); _obj.transform.position = new Vector3 ( topleft.x + offset.x, topleft.y + offset.y, 0.0f ); } </code> 直接positionを操作するのではなく、SetPos関数を実装して設定します。 SetPos関数はSpriteの中心を(0, 0)と見立てて座標指定します。 これを任意のGameObjectから呼び出してあげます。 <code csharp> GameObject obj = gameObject; SetPos( ref obj, 320.0f, 32.0f ); // 画像サイズが640x32なので中心に。 </code> ==== 実行結果 ==== {{:wiki:unity:tips:unity_aspect_adjust.png?200|}}
Permalink
wiki/unity/tips/051.txt
· 最終更新: 2015/01/06 14:15 by
step
ページ用ツール
ログイン
文書の表示
文書の先頭へ
印刷
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
oeffentlich