Unity のメモ in Windows: 3D

Unity 猫本も 8 章まで来た。

  • 3D の Scene にデフォルトで追加されている Directional Light だけだと暗い。Windows→Rendering→Ligting を選択し、Lighting ウィンドウ の Generate Ligting を押すと明るくなるらしい。
  • Terrain を追加して、Inspector→Terrain→Paint Terrain を選択して、その下が "Raise or Lower Terrain" 担っている状態で、マウスドラッグで地形を盛り上がらせる。Shift+ドラッグで下げることもできる。
  • また、"Paint Texture" に切り替え、Terrain Layers→Edit Terrain Layers→Create Layerを選択し、テクスチャを指定すると、そのテクスチャで地形を塗れる。特に初回は、テクスチャを指定するとすぐに、Terrain 全体がその地形で塗られる。
  • Inspector→Terrain→Paint Trees を押すと木の配置。Trees→Edit Trees→Add Tree を選択し、ダイアログが開いたら Tree Prefab から使用する Prefab を選択すると、その木を配置できる状態になる。
  • Asset Store に、Unity 公式で用意された Standard Assets という名前のアセット集がある。
  • Terrain には最初から Terrain Collider コンポーネントがアタッチされているので、Rigidbody 付きのオブジェクトが落下すると、地面で止まる。
  • Rigidbody の isKinematic を true にすると、Inspector から Body Type を Kinematic にした場合と同様に、重力などの力が働かなくなる。
  • Inspector→Add Component→Effects→Particle System で、パーティクルの表示機能を追加できる。
  • デフォルトのパーティクルはピンク色の正方形。Inspector→Particle System→Renderer をクリックし、Material のところで画像を選択することで変更できる。
  • デフォルトではパーティクルが円錐 (Cone) 状に放出される。Inspector→Particle System→Shape で変更できる。
  • パーティクル形状を球 (Sphere) にした場合、球の表面から外向きにパーティクルが放出される。球の半径は Radius で設定する。
  • Inspector→Particle System→Emission で、Rate over Time を 1 以上にすると、時間経過にともなってパーティクルがどんどん生成される。Bursts の + ボタンを押して、Time に開始時間、Count に個数を設定すると、その時間に指定個数のパーティクルが一度だけ生成される。
  • デフォルトでは、パーティクルは同じ大きさのまま飛び散って、指定の時間経過したら消える。Inspector→Particle System→Size over Lifetime にチェックを入れ、Size の横に小さく表示されているグラフを選択すると、Inspector 下部の Particle System Curves にグラフが拡大表示される。その最下部のボタンで、例えば減衰するようなグラフを選択すると、パーティクルが徐々に小さくなって消える。
  • Inspector→Particle System→Play On Awake がオンだと、オブジェクトが表示され次第パーティクル生成が始まってしまう。これをオフにして、スクリプトから ParticleSystem#Play() を呼ぶと、そこから開始になる。
  • Camera#ScreenPointToRay(Vector3) を使うと、カメラから指定されたスクリーン座標を通るようなレイを得られる。
  • メインカメラは Find() などで探さなくても Camera.main で参照できる。
  • Vector3 を正規化するには normalized プロパティを見る。
  • 3D のゲームを Android で動かそうとしたら、ビルドに 15 分くらいかかった。長いな!