2012年03月06日

[Unity] NGUIで画面サイズに合わせた配置がしたい

NGUIで画面端にGUIを配置してみたものの、Galaxy S2とSony TabletではGUIの位置が違ってしまいました。
Sony Tabletだと、GUIが中心に寄ってしまいます。

調べてみると、画面中央を中心点としてNGUIの座標が設定されているようで、
解像度の異なる2機種では中心点からの距離が違うから
Galaxy S2では端に配置できたGUIが、解像度の大きいSony Tabletでは中心に寄ってしまったという訳です。

Inspector画面だけで設定しているとこの問題が起きます。
ということで、プログラム側で位置を設定することにしました。

以下は一例(C#)です。
-------------------------------------------
void Start() {
// set first position
transform.localPosition = new Vector3(-Screen.width / 2 + 40, transform.localPosition.y, 0);
}
-------------------------------------------
「localPosition」という変数を初めて知りました。
親子関係になったとき、子供側の座標系は「親からの相対位置(Vector3(0,0,0)だと親と同じ位置)」になります。
GUIの要素も、NGUIの階層内の子供になっているので、「localPosition 」で相対位置を設定しました。

これに気づくまで結構時間かかりました。
まだまだ勉強不足です。
posted by be-style at 09:06| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]