2014年12月12日金曜日

レンズフレアの設定 ~ Unity C#

レンズフレアの設定をC#で行うメモ。


■レンズフレア


2種類いずれかのコンポーネントを使う。
※一応両方設定することも可能。


  • レンズフレアコンポーネント
    ライト等のオブジェクトに付与して使う。
  • Lightコンポーネント
    このコンポーネントのプロパティにもフレアがある。


■Lightコンポーネント

まず「Lightコンポーネント」を使う場合。

Lightオブジェクトをシーンに配置し、選択状態でInspectorを見る。

Lightコンポーネント欄の Flare がNone (Flare) になっている。この状態ではまだフレアは未設定。

Unity Editor上ならここに手動でAssetのフレアをドラッグ&ドロップすれば設定完了。この操作をC#で行えば良い。



○フレアリソース準備


レンズフレアのAssetを用意。
Assets > Import Package > や Assets Store からインポートしておく。


インポートしたフレアはAssets配下の Resources フォルダに配置しておく。
※C#からフレアリソースをLoadする際は、対象を /Assets/Resource/ フォルダ配下に配置しておく。


○フレア設定


シーンに事前に Point Light を配置。ここではObject名 "Point light for Laser"とした。
フレアは "Laser" というものをPoint Lightに設定してみる。

-----
// Get Light object instance.
GameObject go_Pointlight_for_Laser = GameObject.Find("/Point light for Laser");

// Load Flare resource.
Flare fe_LensFlare_Laser = Resources.Load<Flare>("Lens Flares/Laser");

// Set flare to light object.
go_Pointlight_for_Laser.light.flare = fe_LensFlare_Laser;
-----


これで「Lightコンポーネント」の場合は完了。
 

■レンズフレア コンポーネント

次はレンズフレア コンポーネントを使う場合。

シーンに事前に Point Light を配置。前項同様Object名 "Point light for Laser"。
フレアは "Laser" というものをフレアコンポーネントをC#から付与して設定。

-----
// Get Light object instance.
GameObject go_Pointlight_for_Laser = GameObject.Find("/Point light for Laser");
  
// Load Flare resource.
Flare fe_LensFlare_Laser = Resources.Load<Flare>("Lens Flares/Laser");
  
// Add LensFlare component.
LensFlare lf_Pointlight_for_Laser = go_Pointlight_for_Laser.AddComponent<LensFlare>();

// Set flare to LensFlare component.
lf_Pointlight_for_Laser.flare = fe_LensFlare_Laser;
-----

これで完了。

0 件のコメント:

コメントを投稿