2012年12月4日火曜日

Rayを飛ばすか、箱ポリの当たり判定を取るか

箱ポリ32x32にしきつめたところをタッチして、その箱を検出したい。

依然作ったコードでは、マウス位置と重なっているかを箱ポリ自体が毎フレーム通知してくる仕組みだったが処理的にアレ

画面奥にRayを飛ばす方法をやってみることとする。

2012年12月1日土曜日

Draw Call Minimizerの現状と課題

今作ってるゲームはポリ箱を32x32でタイルして地形を作るのだが、
その後のDraw Call減らしとして著名な「Draw Call Minimizer」を触ってる。

■わかったこと
 ・テクスチャをタイリングしてると壊れる
  Meshをいっこにするのと同時にTextureも一枚に合体させるので、タイリングしてるオブジェクトつっこむと壊れる。
  対策調べたけど、「どうせオブジェクト一個になるんだからMeshをタイル一枚分に分割しちまおうぜ!」というトンデモ理論は発見。どうなんだそれ。

 ・Box Colliderは無くなる  Colliderの類を剥がされます。よって、ステージの床とかにはそのままでは使えん。

■小改造
 ・任意のタイミングでオブジェクト合体を走らせる
  使い方どおりそのまま結合したいオブジェクトの親GameObjectにアタッチすると
実行即結合になるので  start()を適当な関数名に書き換えて後から呼び出すように。
  これで使用前→使用後と効果のほどを確かめるわけです。

 ・Colliderを付ける
  Meshを結合しているfor文の中に以下を付け足す。
  go.AddComponent ("MeshCollider");
  go.GetComponent().sharedMesh = combinedMeshes[i]; 

  MexhColiderだが、とりあえず結合後のオブジェクトに当たり判定がつく。