今日のUnity (5) 光り輝くコイン
今回はPointLightを活用して光り輝くコインを実装してみた。マウスをクリックすると赤い点から光り輝くコインがばらまかれる。コインにはライトを追加しているのでちゃんと光って見える。けっこう綺麗だ。
Coin
- Sphereを潰して平べったい形状に加工
- 黄色に塗りつぶしたマテリアルを追加
- ShaderをSelf-Illumin/Specularに設定するとテカテカ輝いて見える
- 黄色のPointLightを子要素として追加すると実際に発光する
- 物理挙動を示すようにRigidbodyを追加
子要素として追加するにはPointLightオブジェクトをマウスでドラッグしてコインにドロップすればよい。PointLightはコインローカル座標になるため (0, 0, 0) を指定するとコインのちょうど中央に配置される。
CoinSource
- コインを出すオブジェクト
- 空のGameObject
- 赤色のPointLightを子要素として追加
- 円運動をし、マウスクリックでコインを出すスクリプトを追加
PointLightの上限を開放
このまま動かすとPointLightが2つまでしか発光しないことに気づいた。原因は、Edit > Project Settings > Quality
のPixel Light Count
が2に設定されているため。デフォルトではあまり多くの光源を持つことができないらしい。この値を50にして50個のコインが同時に発光できるように変更した。負荷が高過ぎるかと思ったけど普通に動いた。ただし、マウスをクリックしすぎて50個を超えてしまうとCoinSourceの赤い発光が消えてしまう。
参考
- Unity Tutorial, COLLECTIBLES - MAKE A GAME - 発光するコインの作り方
- ライトの数 Light Count - ライトの上限数を開放する方法