Unityで3Dモデルの色を点滅させる

3Dモデルの色を点滅するスクリプトです。

実際に使うファイルは下の方にあります。

ダメージを食らったときとかの演出に使ってます。

Start()の中で、Renderer系のコンポーネント(SpriteRendererとかMeshRendererとか)を持つオブジェクトをGetcomponentsInChildren()で取得して、さらにRendererコンポーネントの持っているmaterialをすべて取得。

materialをKeyにして、該当materialの初期カラーをDictionaryに入れてます。

注意点として、materialがカラーのプロパティを持っていないと使えません。持っていないときはマテリアルを新しく作り、カラーのプロパティを持ったシェーダを設定する必要があります。

一つにまとめたスクリプトが↓です。

このcsファイルを使えばそのままコンポーネントとして使えるはずです。試してませんが。

スプライトにも多分使える? 試してませんが。

FlickerModel.cs

ImageFlickerは別ファイルにしても大丈夫です。

色んなやり方があると思います。