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

n-yoda's blog

主にUnity3Dに関するあんまり技術的じゃないメモ的な何かを書いています。

GUIクラスとGUIElementの比較

ある程度複雑なものは、NGUI(またはそのうち発表されるuGUI)を使えばいいと思うし、簡単なものやデバッグ目的のGUIはOnGUIを使えって感じでしょうか。
以下は過去に書いたものです。

UnityでGUI周りを作る際のいろいろです。
いろいろ調べた結論としては、
「OnGUIの中で大体全部出来る!GUIElementはで使用価値なし!」
(ちなみに、OnGUIの中での描画は必ずGUIElementより前面に描画してしまうので
使うなら必ずどちらか一方のみにすべきです。)

まず、GUI周りを作る方法を適当に分類すると、
GUIElement(GUITexture,GUIText)を使う。
・OnGUIの中でGUIクラスを使う。
GUIも3次元空間上でやってしまう
(・GLクラスでゴリゴリ書く?)

下の2つは手軽ではないかもしれませんが基本的に万能ですよね。


OnGUIで出来てGUIElementで出来ないこと
・画像の回転、変形
・フォントの色を変える
・画像の一部を表示
・Material、Shaderを使った描画

GUIElementは
・前後関係を一括で入れ替えるのが面倒
・表示非表示を一括で設定するのが面倒


とにかく基本的には、OnGUIの中でいろいろやりましょうということです。
それぞれ詳しくは↓の記事を参照です。(リンクがないのはこれから書きます)

GUIElementのクリック判定
OnGUIでの描画とイベント処理の順番
UnityでGUIの回転・変形などなど(GUI.matrix)
GUITexture.LeftBorder、TopBorder…をOnGUIでやる
iPhone/Androidで無理矢理フォントサイズを変える