NGUI 3.0.0 バージョンアップが近々リリースされるが、大幅に修正される予定のようだ!!
(9/14時点では一般ユーザ向けは未リリース)
しかも下位互換性は大幅に犠牲にされる様子。きっちり調べたうえで、次のバージョンアップに対応するか検討する必要がありそう・・・
余裕ある人は英語版のビデオチュートリアルも見ておこう!
NGUI 3.0 ビデオチュートリアル
VIDEO
http://www.youtube.com/watch?v=OT0hTxjjkY4&feature=c4-overview&list=UUQGZdUwzE8gmvgjomZSNFJg
http://www.tasharen.com/forum/index.php?topic=11.30
September 13, 2013, 08:40:00 AM
*** 注意 ***
アップデートの前にプロジェクトのバックアップを必ず行って下さい。
3.0.0はメジャー更新です。アップデートの後、全てのシーンおよびプレハブは開いて再度保存する必要があります。
アップデート後、そのままでコンパイル出来ない可能性が非常に高くなります。全てのイベントデリゲートはインスペクタ向けシステムに置き換えされており、 Transform スケールはウィジェットで使用されません。同梱されたサンプルおよびコードを必ずチェックして、代替としてどうすべきか確認して下さい。詳細なアップグレード ガイドの提供は今後提供するようにします。
3.0.0:
- 新機能: ウィジェットのバッチング方法を変更し、残る Z バッファおよびデプスの課題を修正。
- 新機能: ドローコールは必要に応じて自動的に分割(サンドウィッチングの課題を修正!)
- 新機能: ウィジェットの幅および高さの指定方法を再設計。値は明示的となり、スケールは今後未使用。
- 新機能: 3D でクリッピングパネル対応となり、カメラの傾けの際も正常に動作するように機能追加。
- 新機能: ウィジェットのネストに対応。
- 新機能: 同一オブジェクトに対する複数ウィジェットに対応
- 新機能: NGUI メニューバーからセレクション ハンドルのカラーを変更できるように機能追加。
- 新機能: UICheckbox は UIToggle となり、共通のルートオブジェクトを指定する代わりにグループ ID を指定するように機能追加。
- 新機能: TweenWidth および TweenHeight をウィジェットの幅および高さのプロパティを Tween できように追加。
- 新機能: ラベルのオーバフロー メソッドを指定できるように追加:コンテンツの縮小(shrink content)、コンテンツの Clamp (clamp content)、高さのリサイズ(resize height)、または自由にリサイズ(resize freely)
- 新機能: ラベルが resize label オーバーフロー モードにあるとき、ドラッグハンドルをグレーアウト。
- 新機能: シンプルな EventDelegate クラスを追加して全てのジェネリック コンポーネントを使用できるように改善。
- 新機能: ウィジェット コンテナ(Widget Container) クラスを追加してウィジェットのグループを容易に選択して移動できるように修正(ボタン、ウィンドウを考慮)
- 新機能: リアルタイム(RealTime) ヘルパー クラスを追加して IgnoreTimeScale を削除。使用方法:RealTime.time, RealTime.deltaTime.
- 新機能: ほぼ全てのコンポーネントのインスペクターの外見を修正。
- 修正: ラベルが垂直に正しく整列しない不具合を修正。
イベント デリゲートのアップグレード時のポイント
ビルトインされたイベント デリゲート(入力変更、tween 完了、スライダー変化、ボタンクリック、等)に次のようにサブスクライブ:
コード例: [Select]
EventDelegate.Add(slider.onChange, MySliderChange);
...MySliderChange は次のように出来る:
コード例: [Select]
public void MySliderChange()
{
Debug.Log(UISlider.current.value);
}
しかし(!!!)、インスペクタ上で同じ値がコードの変わりにセットできるようになった。ゲームオブジェクトをドラッグ&ドロップして、次にドロップダウンリストから MySliderChange を選択する。コーディングの必要性がなくなった。関数の型が void (void) かつ public であることを確認すること。
ウィジェットの大きさ/スケールのアップグレード時のポイント
ウィジェットは Transform のスケールを全く使用しなくなった。widget.width および widget.height が代わりに使用できる。ワールド座標の cornerが必要な場合は widget.worldCorners を使用する。ローカル座標の Corner widget.localCorners を使用する。さらに必要ならば widget.innerCorners もある。
その他のアップグレード時のポイント
* プロジェクトの各々のシーンを開き、保存すること。全てのゲームオブジェクトを有効化する必要があり、それはアップグレードロジックが有効なものしか対応しないため。
* ウィジェットを使用するプレハブをシーンにドラッグ(表示されるように)して、次にプレハブもアップグレードされるように変更を反映します。
* 全体で UICheckbox を UIToggle に置き換える。
* UICheckbox は ルートがないため、各々のラジオボタンでグループ ID を代わりに指定。
* Make Pixel Perfect ボタンの名称を Correct に変更し、ウィジェットの各々の次元の横に配置。
------
なかなかリリースされない次世代Unity GUI はDuke Nukem Forever (なかなかリリースされなかったゲームタイトル) と、あだ名がつけられてしまっているが、このNGUI 3.0 が近い形になるのだろうか??