読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

GUITextureのGUIよりはマシなGUI

Unity

前回のゲームジャムでGUITextureで頑張って作っていた人がいたのだが、GUITextureで作るのは余りにも不毛なので簡単なアセットを用意した。

simple gui
https://dl.dropboxusercontent.com/u/56297224/UnitySample/simple%20gui.unitypackage

GUIを名乗れない程に無機能だが、まあGUITextureよりはマシだと思う。
NGUIやEZGUIは規約上ジャムで共有するのは無理なので・・・
(NGUIは左上にウォーターマークがあっても良いなら可)


■使い方

1.Packageをインポートする。

スクリーンショット 2013-08-03 0.46.56

2.GUICameraをシーンに配置、GUICameraのレイヤーはGUIとか設定しておく。

スクリーンショット 2013-08-03 0.49.34

3.カメラのsizeを「想定解像度の高さ/2」を設定する。例えば640*480なら240と設定。


■スプライトを配置する

1.画像をプロジェクトビューに配置

2.画像を選択しつつ、CreatePanelを選択。スプライトがシーンに表示される。

スクリーンショット 2013-08-03 0.55.03 スクリーンショット 2013-08-03 0.57.05

3.作ったスプライトのレイヤーはGUIと設定しておく。

ちなみに、座標は中心点0になる。
一応、親Gameobjectを設定し、親GameObjectの座標を(想定スクリーンWidth/-2,想定スクリーンHeight/2,0)とかすれば、左上を0/0とすることも出来る。


■クリックイベント

1.タッチしたいスプライトにBoxColliderをアタッチ

2.タッチしたいスプライトに適当なコンポーネントを作って配置。

3.2で作ったコンポーネントに以下のメソッドを(必要な分だけ)追加。

void Push(){} // 押した時の反応
void Hold(){} // 押している時の反応
void Up(){} // 離した時の反応

スクリーンショット 2013-08-03 1.06.27

ちなみに仕組みは、UICameraからマウスの状態に従ってRayを1本飛ばしてるだけ。もしかしたらタッチは動かないかもしれないので、その場合は修正する感じ。

たった31行のソースなので余裕なはず。


最低限GUIの変わりなので、過度な期待はしないお勧め。