2013年9月14日土曜日

【大注目】NGUI3.0は大幅修正が確定!


NGUI 3.0.0 バージョンアップが近々リリースされるが、大幅に修正される予定のようだ!!
(9/14時点では一般ユーザ向けは未リリース)



しかも下位互換性は大幅に犠牲にされる様子。きっちり調べたうえで、次のバージョンアップに対応するか検討する必要がありそう・・・

余裕ある人は英語版のビデオチュートリアルも見ておこう!

NGUI 3.0 ビデオチュートリアル

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 が近い形になるのだろうか??

4 件のコメント:

  1. asset storeに3.0.0bが来てますね。2.x.xはもう入手できないってことかな?

    返信削除
  2. 9/21リリースされたようですねぇ、、ということは2.x.xはローカルPCにバックアップしてないと、もはやAsset Storeからは無理ですね☆〜(ゝ。∂)

    返信削除
  3. 試していると思いますが、現時点でAssetStoreのNGUIは3.0系になっていますが、ダウンロードすると、3.0系のpackageと2.7.0のpackageが入っていました

    返信削除
  4. 情報有難う御座います。新しい記事を追記しました!

    返信削除

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿