Version: 2020.1
言語: 日本語
Light Explorer ウィンドウ
ライトマッピング

Light Explorer 拡張

Light Explorer 拡張を使用すると、独自のバージョンの ライトエクスプローラーウィンドウ を作成できます。これを使用して、ライトエクスプローラーウィンドウの機能を調整し、カスタムのスクリプタブルレンダーパイプライン (SRP) や、HD レンダーパイプライン のカスタムの ライト で使用できます。

Light Explorer ウィンドウでは、シーン内のすべての ライト を表示し、それらのプロパティを編集できます。この拡張を使用すると、現在のウィンドウを複数の方法で拡張できます。例えば、以下が可能です。

  • 単にタブ名を変更するだけでなく、独自のカスタムタブを追加し、さまざまな種類のゲームオブジェクトのリストを表示できます。これは、例えば、独自のカスタムリフレクションプローブのプロパティ情報を表示したい場合に便利です。
  • タブに含まれる列を変更します。単なる名前の変更から、独自のカスタム列の追加まで可能です。ライトの追加プロパティを表示したい場合は、列を追加すると便利です。

ライトエクスプローラーの拡張

ライトエクスプローラーを拡張するには、以下のいずれかを行います。

  • ILightingExplorerExtension インターフェースを継承し GetContentTabs メソッドをオーバーライドします。
  • ILightingExplorerExtension から継承した DefaultLightingExplorerExtension クラスを継承します。このクラスは、すでにウィンドウにあるすべてのコンテンツを提供します。これは、タブの数、各タブの名前、表示するライトをオーバーライドしたい場合に使用します。ライトエクスプローラーの拡張方法については、以下の例を参照してください。

コード例

ここにある例は、デフォルトの Light Explorer クラスを拡張して、ライトの Name 列のみを表示したりタブ数を変更する方法を示しています。独自の実装では、必要な数のメソッドをオーバーライドできます。

下の例では、ライトの Name 列のみを表示します。

namespace UnityEditor
{
    [LightingExplorerExtensionAttribute(typeof(SomeRenderPipelineAsset))]
    public class SimpleExplorerExtension : DefaultLightingExplorerExtension
    {
        protected override LightingExplorerTableColumn[] GetLightColumns()
        {
            return new[]
            {
                new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, Styles.Name, null, 200), // 0: Name
            }
        }
    }
}

下の例では、ライトの名前と有効な使用ステータスのみを表示し、Emissive Materials タブを非表示にします (4 つではなく 3 つのタブのみを表示)。

namespace UnityEditor
{
    [LightingExplorerExtensionAttribute(typeof(SomeOtherRenderPipelineAsset))]
    public class ComplexLightExplorerExtension : DefaultLightingExplorerExtension
    {
       protected virtual UnityEngine.Object[] GetLights()
        {
            return Resources.FindObjectsOfTypeAll<Light>();
        }

        protected virtual LightingExplorerTableColumn[] GetLightColumns()
        {
            return new[]
            {
                new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, Styles.Name, null, 200), // 0: Name
                new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, Styles.On, "m_Enabled", 25), // 1: Enabled
            {
        {

        public virtual LightingExplorerTab[] GetContentTabs()
        {
            return new[]
            {
                new LightingExplorerTab("Light Table", GetLights, GetLightColumns),
                new LightingExplorerTab("Reflection Probes", GetReflectionProbes, GetReflectionProbeColumns),
                new LightingExplorerTab("Light Probes", GetLightProbes, GetLightProbeColumns)            };
        }
    }
}

便利なクラスとメソッド

以下は、ライトエクスプローラーを拡張するために使用できるクラスとメソッドのリストです。

ILightingExplorerExtension

public virtual LightingExplorerTab[] GetContentTabs();
public virtual void OnEnable() {}
public virtual void OnDisable() {}

DefaultLightingExplorerExtension (inherit from ILightingExplorerExtension)

public virtual LightingExplorerTab[] GetContentTabs();
public virtual void OnEnable() {}
public virtual void OnDisable() {}

protected virtual UnityEngine.Object[] GetLights();
protected virtual LightingExplorerTableColumn[] GetLightColumns();

protected virtual UnityEngine.Object[] GetReflectionProbes();
protected virtual LightingExplorerTableColumn[] GetReflectionProbeColumns();

protected virtual UnityEngine.Object[] GetLightProbes();
protected virtual LightingExplorerTableColumn[] GetLightProbeColumns();

protected virtual UnityEngine.Object[] GetEmissives();
protected virtual LightingExplorerTableColumn[] GetEmissivesColumns();

  • 2019–08–13 公開ページ
  • Light Explorer 拡張は 2018.3 で追加NewIn20183
Light Explorer ウィンドウ
ライトマッピング