× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
DrawCallを減らすために、いくつかのメッシュ(ひとまずキューブ)をまとめて1つのオブジェクトにするスクリプトを作ってみる。
キューブその他のオブジェクトを作ると(GameObject->Create Others -> Cubeとか)、 コンポーネントとしては - Transform - Cube(Mesh filter) - Cube Collider - Mesh Renderer の4つがついたゲームオブジェクトが生成される。 TransformとColliderは置いといて、MeshFilterにまず注目。 見ると、Meshというプロパティがあり、Cubeというメッシュが入っている。 ここをクリックすると、プロジェクト内にあるメッシュの一覧が別画面で出る。ここから選んだメッシュがこのゲームオブジェクトになるわけ。 最初はたぶん、Cube,Sphere,Capsule,Plane,Cylinder の5つがある。 ここからメッシュを選んだらゲームに映るわけ。 公式のリファレンスを見てみる。 http://unity3d.com/support/documentation/ScriptReference/Mesh.html Meshクラスには、vertex配列がある。 同じ長さのnormal, tex coords0, tex coords1, color, tangent配列がある。(これらは任意) で、三角形はvertex配列へのインデックスとして表現する。 コンバインすること自体は、便利なことに関数が用意されてる。 http://unity3d.com/support/documentation/ScriptReference/Mesh.CombineMeshes.html もうこのサンプルをコピーして書くだけ。 マテリアルさえ一緒なら、見た目はまったくそのまま変わらないし、DrawCallも1回になるはずだ。 PR |
|