Version: 2019.3
スクリプタブルレンダーパイプラインバッチャー
カメラ

Light Explorer 拡張

The Light Explorer extension allows you to create your own version of the Light Explorer window. This window is a powerful visualization and editing tool that you can use to see every Light in your Scene and edit their properties. With this extension, you can extend the current window in multiple ways. For example, you can:

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

Use this extension to create a Light Explorer within your own custom Scriptable Render Pipeline (SRP), or with the High Definition Render Pipeline’s custom Lights.

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

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

  • 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 Page published
  • Light Explorer 拡張は 2018.3 で追加NewIn20183
スクリプタブルレンダーパイプラインバッチャー
カメラ