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ボタンを押す
これで上記エラーは解消しました。
ドローコールを減らせる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
登録:
投稿 (Atom)