Tag: unity

Gameobject名とボタンイベントの取得

ボタンのイベントを取得して、それをGameObjectに適応させるようにします。

ボタンを押したときのイベントの取得

[javascript]
var bt1width = 120;
var bt1height = 40;

var bt1x = 10;
var bt1y = 10;

//GUIの設定
function OnGUI () {

var bt1 = GUI.Button(Rect(bt1x,bt1y,bt1width,bt1height),”bt1″);

//Click Button Event
if(bt1) {
Debug.Log(“クリックされた”);
}
}[/javascript]

上記のサンプルではOnGUI()の関数内でしかオブジェクト名が指定できないので、変数を関数の外に出してやることで解決できます。でもbt1は初期化していないけどいいのかな?

[javascript]
var bt1width = 120;
var bt1height = 40;

var bt1x = 10;
var bt1y = 10;

var bt1;

//GUIの設定
function OnGUI () {
bt1 = GUI.Button(Rect(bt1x,bt1y,bt1width,bt1height),”bt1″);
}
function Update () {

//Click Button Event
if(bt1) {
Debug.Log(“クリックされた”);
}
}[/javascript]

さて私はUnityをosx環境のjavascriptでテストしているわけですが、これだとscriptの記述が「Unitron」という最初から付いているアプリケーションを使うことになります。
しかしこれがコード補完はしないし特別な機能がついているわけでもないので辛い。WindowsならUnityDevelopがありますが、Macにはありません。MonoDevelopがあるじゃないかと思いきやC#とBoo(?)にしか使えません。結局「Coda」というウェブ制作、html制作者達のアプリケーションを使っています。
そして「Coda」でUnity用のコード補完してくれるプラグインがありました。

Unity Community

やったー!と思いきや大文字と小文字を微妙に間違えてくれる厄介使用。クワー。

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」ボタンを押して出てきたテキストエディタに以下のように記述して再生させると単純なボタンが作られます。
[javascript]
function OnGUI () {
var bt1 = GUI.Button(Rect(10,10,160,40),”bt1″);
}[/javascript]

簡単な説明としては、GUI.Buttonでボタンを生成し、Rectでボタンの種類を四角形に、その引数は(X座標 , Y座標 , ボタンの横幅 , ボタンの縦幅)、GUI.Buttonの第2引数でボタンのテキストを記述します。
画像をボタンに入れる場合は、まず以下scriptを記述します。
[javascript]
var btB1 : Texture2D;
function OnGUI () {
var bt1 = GUI.Button(Rect(10,10,160,40),”bt1″);
GUI.Button (Rect(10,120,202,42), btB1);
}[/javascript]
これだけだとボタンには何も表示されません。javascriptを入れ込んだGameObjectを選択すると、inspectorタブにTextureを選べる項目がでるので、そこでTextureを選択して初めて表示されます(これがわからなくてハマった)。
正常にjavascriptが記述できていたらこんな感じになります。

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

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

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

© 2017 UXIC.net

Theme by Anders NorenUp ↑