人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

今日のUnity (5) 光り輝くコイン

今回はPointLightを活用して光り輝くコインを実装してみた。マウスをクリックすると赤い点から光り輝くコインがばらまかれる。コインにはライトを追加しているのでちゃんと光って見える。けっこう綺麗だ。

Coin

Coin

f:id:aidiary:20140809143451p:plain

  • Sphereを潰して平べったい形状に加工
  • 黄色に塗りつぶしたマテリアルを追加
  • ShaderをSelf-Illumin/Specularに設定するとテカテカ輝いて見える
  • 黄色のPointLightを子要素として追加すると実際に発光する
  • 物理挙動を示すようにRigidbodyを追加

子要素として追加するにはPointLightオブジェクトをマウスでドラッグしてコインにドロップすればよい。PointLightはコインローカル座標になるため (0, 0, 0) を指定するとコインのちょうど中央に配置される。

CoinSource

f:id:aidiary:20140809143454p:plain

  • コインを出すオブジェクト
  • 空のGameObject
  • 赤色のPointLightを子要素として追加
  • 円運動をし、マウスクリックでコインを出すスクリプトを追加

PointLightの上限を開放

このまま動かすとPointLightが2つまでしか発光しないことに気づいた。原因は、Edit > Project Settings > QualityPixel Light Countが2に設定されているため。デフォルトではあまり多くの光源を持つことができないらしい。この値を50にして50個のコインが同時に発光できるように変更した。負荷が高過ぎるかと思ったけど普通に動いた。ただし、マウスをクリックしすぎて50個を超えてしまうとCoinSourceの赤い発光が消えてしまう。

参考