Pages

2012年9月13日木曜日

DrawCallMinimizerでエラーが起きたとき


前回の手順で、再生を押すとドローコールがうまい具合に激減しているハズ。


なのですが、以下のエラーが出るときがあります。
Unsupported texture format - needs to be ARGB32, RGBA32, BGRA32, RGB24, Alpha8 or DXT


解決策は以下


1 テクスチャのインスペクタからAdvancedを選択し、read/write Enabledにチェックをつけてあることを確認

2 一番下にあるフォーマットんも覧でフォーマットを変更する
ARGB32, RGBA32, BGRA32, RGB24, Alpha8 or DXTのどれか。端末に応じて。

3 applyボタンを押す

これで上記エラーは解消しました。

NGUIのスクロール(クリッピング)その2


非常に便利なNGUIのクリッピングスクロールですが

ドローコールを減らせるUnityAsset「DrawCallMinimizer」の使い方



*概説*
まとめたいオブジェクトをすべて一つのオブジェクトの子にして、親オブジェクトにスクリプトをつけるだけ。これだけでテクスチャ・マテリアル・シェーダーをひとつにまとめてくれます。


*注意*
すべてのテクスチャはRead/Write Enabledにチェックすること
Unity defaultシェーダーはエラーになるので使わない


*解説訳*
以下が解説に載っていたステップ全訳です。

1 GameObject > Create Empty でGameObjectを作る

2 1にすべてのオブジェクトを子化する

3 occlusion cullingを使うなら、一つにまとめるのではダメ
なぜなら可視境界判定に使うボックスでは巨大なメッシュは妨げに

4  Optimized Combine Childrenスクリプトを親につける

5 設定を行う=スクリプトの各変数
  Aniso Level
 高くすればするほどぼやけずに遠くから綺麗に見える
  Compress Textures In Memory
 圧縮するか。メモリ消費量はが増えるが、綺麗になりパフォーマンスが良くなる。オフにする。
  Filter Mode
 ミップマップ (Point, Bilinear, Trilinear) ブレンド用
  Ignore Alpha
 アルファがなければ、チェックしてパフォーマンスを改善
  Wrap Mode
  テクスチャのラップモード。変更してもあまり違いはありません。
  Shader Properties to Look For
カスタムを含めて、すべてのシェーダーが利用できる。
テクスチャ変数にどんなものを不化したのかをシェーダーに伝える。


*リファレンス*
DrawCallMinimizerのブログはここから

2012年9月8日土曜日

NGUIでメニューを重ねて表示したい時


 例えば、メニューの上にダイアログを重ねて表示したい時などがあります。

 この場合、NGUIではパネルを重ねます。重ねるといっても、単に新しいパネルを作り、そのパネルのpositionのzを-1してやればいいだけ。

 NGUIでパネル同士の前後関係はz軸で設定します。(-になるほど手前です)

 
 しかし、これだけではだめで、重ねた下パネルのボタン類を無効化しないといけません。

 その時は、手前のパネルを覆うように適当なウィジェットを追加し、コライダを追加します。
下パネルのボタンは、このコライダに遮られて無効になります。






2012年9月4日火曜日

Unityでオブジェクトが静止しているかを判定するには


Rigidbodyがついているオブジェクトでは以下で判定できる。

GameObject.rigidbody.velocity.magnitude == 0