自分自身としてのノウハウなのでこれが正解だなんて言ってないし時と場合による!
開発環境
NGUI3.8
Unity5.0.0p2 (4.6.2 から移行済み)
俺的ノウハウ
- UIのサイズ調整
- モバイルように作るのであればUIRootでConstrained On Mobiles に設定すると幸せになれる。
- 縦横のサイズは想定される最大のサイズの端末にあわせる
- 基本的にAnchorを設定することで多様なサイズの端末に合わせていく。
- Set to Current Position 最強説ある
- ただし、Anchorの動作するタイミングはよく考えること
- デフォルトでonUpdateだが、1度読み込めばサイズが変わらないようなUIの場合onStartにするなどしないとパフォーマンスに影響有り
- UILabel
- Batches(Draw Call)とDepthの関係上、Depthは99999等固定でスクリプト等でまとめると後で管理しやすくBatchesも減らせる
- Fontは基本的にNGUIのフォントではなくUnityのフォントを使う
- フォントの装飾としてtextに直接色等指定できる。こんな感じ(※ただしBBcode にチェックを入れる必要あり)
[FF0000]Just this text is red.[-]
- その他
- Manager的なシングルトンのクラスを定義してUIの最初の描画系は処理しちゃう
- オブジェクトの子オブジェクトを追加するときはNGUITool.AddChildをなるべく使う
下記はNGUIを本当に始めるときの話
NGUI3.6以降であれば下記のものをみれば問題なく初められる。
ただし、NGUI2.X、NGUI3.6より前のVersionの場合は様々な仕様が異なるようなので要注意
チュートリアル
チュートリアルはNGUIに入っているExampleとにらめっこしながら、
Youtubeの3.6.0 Versionをひと通り見るのがいいと思う。
このチュートリアルを全部理解したら作りたいものはもう大体作れる気がする。
- Youtubeチュートリアルリンク
- チュートリアル1(環境について)
- チュートリアル2(基本)
- チュートリアル3(各UIについて)
- チュートリアル4(D&D、Grid、Scrollについて)
- チュートリアル5(レイアウト、UIRoot、ローカライズ対応、AtlasとFontメーカー)
最低限抑えるTips
- Depth、Zによるオブジェクトの描画順について
- スクリプトによるNGUI構築
- PanelとDrawCallについて
- NGUI側の描画のバッチシステムはなんか色々やってるのでちゃんとソースを読まないと理解できそうにない。
- Panelが増える毎にDrawCallが増えるという話と、PanelがあってもZが同じであれば描画がまとめられるという話もある
- Versionによって挙動は違いそう。要調査
- UIScrollViewにはPanelが元から付いている
バグ?謎の挙動について
###独自のスクリプト等でPanelをまたいだ時のスプライトオブジェクトの描画順について
Drag&Dropでアイテムを移動した後に、例えばキャンセルボタン等を実装し、元の親オブジェクトに戻したい時がある。
この時NGUIのスクリプトを介さず、オブジェクトの移動を行った場合スプライトの描画順がおかしくなる場合がある。
応急処置として、移動したオブジェクトを
gameObject.SetActive(false);
gameObject.SetActive(true);
とすることで、再度オブジェクトの描画が行われ、意図した通りの描画順になる。
※これに関してはいつか別途まとめる。。。
###UIScrollViewにおける動的なオブジェクトの追加とResetPosition
UIScrollViewに動的にオブジェクトを追加したい場合はよくあることだと思う。
何も気にせずオブジェクトを追加していると、どんどんスクロール位置がずれるので、
オブジェクトを追加したあとに一度ResetPositionを行う
参考 http://bribser.co.jp/blog/reset-position/
このとき、ScrollViewのSmoothTweenだかのオブションにチェックをしているとScrollViewの枠から要素が飛び出る。
オフにするとズレない。
また、同じオブジェクトにUIScrollViewとUIGridをつけての制御はしないほうがいい。
UIGridの初期表示位置がどうしてもずれてしまうので、UIScrollViewの子オブジェクトにUIGridのオブジェクトを追加したほうが良い
その他
- 公式ドキュメント
- NGUIとuGUIとその開発者のすったもんだ
- 2系は無料