Unityでビリヤードを作った振り返り

f:id:peroon:20140610220518j:plain

  • NGUIはreadmeに書いてあるとおり、一部をPluginsに移動する
  • NGUI 3.5を使ったが、空オブジェクトに関数をいくつか付けて、それをボタンに付け、押下時のアクションを選ぶという実装になっていてGUI関数がまとめやすくなっていた
  • NGUIの部品にスクリプトからアクセスするにはGameObject.Find("guiName").GetComponent(UILabel)
  • スケールを小さくして作ると物理動作が軽やかだが、デフォルトの物理設定だとめり込み可能距離が大きすぎたりするので、ProjectSettings>Physicsで調整するといい
  • 減衰なしの跳ね返り壁を作るときは、PhysicsMaterialで摩擦0, Bouncinessをにした
  • AppCの広告を入れるときは、サンプルのディレクトリ構造と全く同じにして、ファイルもコピーして削る方法で動いた
  • JavaScriptで書いていても型宣言はした。例:var hoge:Vector3
  • 1本指のゲームならマウスイベントで書く Input.GetMouseButtonDown(0), Input.GetMouseButton(0)
  • 球の飛ぶ方向を示すためにLineRendererを使った。位置指定はlineRenderer.SetPosition(index, position)
  • 白球にはTrailRendererを付けた
  • テクスチャは小さなパターンを作ってそれを繰り返したテクスチャをPhotoShopで作ったが、パターンテクスチャだけで十分だった。そうすればより軽くなる
  • 球を飛ばすには、whiteBall.rigidbody.AddForce(vector)
  • SceneをリセットするためにUnityのPlay, Stopを押すより、ゲーム内にリセットボタンを作った方が速い。Application.LoadLevel(Application.loadedLevel)
  • パーティクルは全部Importしてから不要なものを削っていく。火花が出るParticleの"Sparks"が気に入った
  • 物理に任せていると球が止まるまで時間がかかるので、スクリプトを付けて閾値以下になったら止まるようにした
  • サウンドは2D