unityでスクリプトによるボタンの配置

writer : uxicカテゴリー unityタグ ,

unityでもGUI操作だけでゲームができるわけではなく、やはり3Dをやっている人にとっては鬼門?のscriptを記述してやる必要があります。
言語はjavascriptとC#が使えますが、手軽に使えるjavascriptは中級者まで、ちょっと記述する内容がめんどくさいけど本格的にやるならC#というイメージです。私はもちろん手軽なjavascriptで。
unityでscriptを使う時はGameObjectに追加してやらないと動きません。それがオブジェクトではなく画面に配置するボタンなどのGUIの場合でも同様です。

scriptが使えるようにする

まずはscriptを入れるために、空のオブジェクトを作成し、javascriptを追加します。

次にjavascriptを先ほど追加した空のオブジェクトにドラッグします。これで準備完了。
(画像では名前をそれぞれ変えてあります)

テクスチャをGUI用に設定する

画像はpngやjpg形式のデータを「project」エリアにドラッグすることで使えるようになりますが、そのままだと「Texture」扱いになっている筈です。
この状態だと画像が本来の縦と横の比率を無視して広がってしまって面倒くさいしそもそも使い方が違うので、instectorタブで「GUI」に変更します。項目を変えたら「Apply」を押します。

次にjavascriptを選択してinspectorタブから「Edit」を押していよいよscriptを記述していきます。

javascriptの記述

「Edit」ボタンを押して出てきたテキストエディタに以下のように記述して再生させると単純なボタンが作られます。

function OnGUI () {
	var bt1 = GUI.Button(Rect(10,10,160,40),"bt1");
}

簡単な説明としては、GUI.Buttonでボタンを生成し、Rectでボタンの種類を四角形に、その引数は(X座標 , Y座標 , ボタンの横幅 , ボタンの縦幅)、GUI.Buttonの第2引数でボタンのテキストを記述します。
画像をボタンに入れる場合は、まず以下scriptを記述します。

var btB1 : Texture2D;
function OnGUI () {
	var bt1 = GUI.Button(Rect(10,10,160,40),"bt1");
	GUI.Button (Rect(10,120,202,42), btB1);
}

これだけだとボタンには何も表示されません。javascriptを入れ込んだGameObjectを選択すると、inspectorタブにTextureを選べる項目がでるので、そこでTextureを選択して初めて表示されます(これがわからなくてハマった)。
正常にjavascriptが記述できていたらこんな感じになります。

クリックすると反応してくれます。いい感じですね。

scriptについては本家のサイトのマニュアル、リファレンスが充実していますし、他サイトもありますので参考にしてください。というか参考にさせて頂いております。

unity(スクリプトオーバービュー)
Unityドキュメント
Unity Games

« Newer Posts
meta