2012年03月19日

[Unity] GUI Skin を使って画像を切替える

ロケーション(日本、それ以外)によって画像を切替えたいなーと考えたときに、
GUI Skinを使うと簡単に切替えることができます。

1球パターゴルフ2 で実際に使ったコードをもとに備忘メモ。

タイトルの切替えだったら、まずは日本語と英語のタイトル画像を用意します↓

20120319skin01_jp.png20120319skin02_en.png

次に、Projectウィンドウで
右クリック > Create > GUI Skin
として、GUI Skinを作ります。
名前は、「custom」としました(↓画像内の右)

20120319skin03.png

↑「custom」を選んだ状態で、Inspectorウィンドウを見ると、「Custom Styles」とあるので
「Size」の数を増やして登録するStyleの数を増やします。

ここでは「title_jp(日本語用)」「title_en(英語用)」を追加しました。
その中の「Normal > Background」が、常に表示される画像となります。
そこに、先ほど用意しておいた画像をドラッグして登録します(↑画像内の左)。

次にプログラムです。
該当箇所だけを抜粋しました。
------------------------------------------
var customSkin: GUISkin; // カスタムスキン
function OnGUI () {
// GUISkinをセットアップ
if (customSkin) {
GUI.skin = customSkin;
}
// 言語によるスキン切り替え
var lang : String = "_en";
if (Application.systemLanguage == SystemLanguage.Japanese) {
lang = "_jp";
}
// タイトル
GUI.Label(Rect(Screen.width / 2 - 240, 50, 480, 240), "", "title" + lang);
.
.
.
}
------------------------------------------
ロケーションの判別には「Application.systemLanguage」を使いました。
それで、日本語と英語のタイトルを切替えています。

このプログラムを空のオブジェクト(「GUI」という名前にしました)に適用します。
このとき、先ほど用意した「custom」を忘れずに適用します↓

20120319skin04.png

結果は↓のとおりです。

20120319skin01.png20120319skin02.png

タイトル画像だけではなく、ボタンについても同じ方法で切替えています。
GUI Skinって便利だなーと改めて思ったのでした。
posted by be-style at 08:16| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]