Version: 2019.4
The Light Explorer window
라이트매핑

광원 탐색기 확장자

The Light Explorer extension allows you to create your own version of the Light Explorer window. You can use this to adapt the functionality of the Light Explorer window so that it works with a custom Scriptable Render Pipeline (SRP), or with the High Definition Render Pipeline’s custom Lights.

The Light Explorer Window lets you 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:

  • 단순히 탭 이름을 변경하거나 다른 타입의 게임 오브젝트를 표시하는 커스텀 탭을 추가하는 등 탭을 변경합니다. 예를 들어 커스텀 반사 프로브에 대한 프로퍼티 정보를 표시할 때 특히 유용합니다.
  • 이름을 바꾸거나 커스텀 열을 추가하는 등 탭의 열을 변경합니다. 열을 추가하면 추가 광원 프로퍼티를 편리하게 확인할 수 있습니다.

광원 탐색기 확장

광원 탐색기를 확장하려면 다음 중 하나에서 상속받아야 합니다.

  • ILightingExplorerExtension 인터페이스. GetContentTabs 메서드를 오버라이드합니다.
  • ILightingExplorerExtension에서 상속되는 DefaultLightingExplorerExtension 클래스. 이 클래스는 이미 창에 있는 모든 콘텐츠를 제공합니다. 이 클래스를 사용하면 탭 개수, 각 탭의 제목, 표시할 광원 등을 오버라이드할 수 있습니다. 광원 탐색기를 이런 식으로 확장하는 방법을 알아보려면 아래 예제를 참조하십시오.

예제 코드

이 섹션의 예제는 기본 광원 탐색기 클래스를 확장하여 광원의 이름 열만 표시하거나 탭 개수를 변경하는 방법을 보여줍니다. 자체 구현 시 원하는 수의 메서드를 오버라이드할 수 있습니다.

다음 예제는 광원의 이름 열만 표시합니다.

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 페이지 게시됨
  • [2018.3]에서 광원 탐색기 확장자 추가됨(https://docs.unity3d.com/2018.3/Documentation/Manual/30_search.html?q=newin20183) NewIn20183
The Light Explorer window
라이트매핑