Unityでのパフォーマンス低下の原因の一つであるDrawCallを減らすためのAsset、
Draw Call Minimizerを使用した際の問題点とその対策方法のまとめです。

Draw Call Minimizer (free)

実装時のバージョンはUnity4.0.0、Draw Call Minimizerのバージョンは1.3.6.2です。

基本的な使い方についてはテラシュールウェアさんの記事が参考になります。

[Unity3D]Draw Call Minimizerの使い方と問題について
http://terasur.blog.fc2.com/blog-entry-215.html


以下が自分の環境で使用した際に起きた問題点とその対策方法です。

●まとめたオブジェクトが実行時に真っ黒になってしまう
 オブジェクトのマテリアルで使用しているテクスチャが大きすぎると、
 1枚に結合できずに黒くなってしまうので、
 テクスチャのインポート設定でMax Sizeを小さいサイズに変更する。 

●エラーメッセージUnsupported texture format needs to be ARGB32, RGBA32, BGRA32, RGB24, Alpha8 or DXTが出る
 メッセージの通り、テクスチャのインポート設定でAdvancedにして、
 FormatをARGB32、RGBA32、RGB24、Alpha8、DXTのいずれかに変更する。

●エラーメッセージCannot combine textures when using Unity's default material textureが出る
 これもメッセージの通り、デフォルトテクスチャは使用できないので、
 何でもいいのでテクスチャを張り付ける。

●一部のモデルでout of boundsエラーが出る
 エラーが発生しているスクリプトの該当箇所をコメントアウトする。
 対応箇所は「MeshCombineUtillity」の以下部分。

 mesh.colors = colors.ToArray();
 mesh.uv1 = uv1.ToArray();
 mesh.uv2 = uv2.ToArray();

●オブジェクトの当たり判定がなくなり、すり抜けてしまう
 実行時にColliderが外れてしまうので 、「OptimizedCombinedChildren」の
 150行目付近のメッシュを結合しているfor文の中にMeshColliderを付ける処理を追加する。

 go.AddComponent ("MeshCollider");
 go.GetComponent<MeshCollider>().sharedMesh = combinedMeshes[i];


ちなみに、Draw Call MinimizerはOptimizedCombineChildren配下の全オブジェクトを1つにしてくれるのではなく、共通のシェーダを使用しているオブジェクトが1つにまとめられます。
(2種類のシェーダを使っていたら2つのオブジェクトにまとめられます。)

マテリアルを結合しているので当たり前なのですが、複数のシェーダを使用している場合には注意が必要です。