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

2012年8月22日水曜日

Unityの新パーティクルシステム(Shriken)ざっと見

1 生成方法
GameObject -> Create Other -> Particle System

2 カスタマイズ

・モジュールを使うことで色々な動きを実現できる。

・パーティクルエフェクトにグループ化することで複数パーティクルの組み合わせが可能

・Open Editorボタンを押すことで、シーン上の同じ親を持つパーティクルシステムを表示できる

・インスペクタの値を変えると、リアルタイムにシーンビューのパーティクルが変化する。

・シーンビュー上のPreview Panelでは、再生やストップやリプレイができる。


3 カーブエディタでアニメーションさせる

モジュールの各プロパティは、minmaxカーブによってアニメーションしており、右側のプルダウンから値を変更できる。

以下設定できる値
Constant:変化しない
Random between constants:ランダムに変化
Curve:カーブエディタで指定した値に動く=編集可能
Random between curves:ランダムなカーブを自動生成

-はカーブを除去 +は最適化


4 色とグラデーションのアニメーション

カーブエディタと同じように使われる

Color: 色は変化しない

Gradient: グラデーションはRGBAで変化する。エディタで編集できる

Random Between Two Colors:2色の間でランダムに変化

Random Between Two Gradients: 2つのグラデーションARGBの間でランダムに変化

といったところ。次回はモジュールの中身(プロパティ)をひとつひとつ見ていこうと思う。