Version: 2019.2
스크립터블 렌더 파이프라인(SRP) 배처
물리

광원 탐색기 확장자

광원 탐색기 확장자를 사용하면 커스텀 버전의 광원 탐색기 창을 만들 수 있습니다. 이 창은 씬의 모든 광원을 보고 해당 프로퍼티를 편집할 수 있도록 해주는 강력한 시각화 및 편집 툴입니다. 이 확장자를 통해 현재 창을 여러 방법으로 확장할 수 있습니다. 다음 예를 참조하십시오.

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

이 확장자를 사용하여 자체 커스텀 스크립터블 렌더 파이프라인(SRP) 내에 광원 탐색기를 생성하거나, 고해상도 렌더 파이프라인의 커스텀 광원과 함께 사용할 수 있습니다.

광원 탐색기 확장

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

  • 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
스크립터블 렌더 파이프라인(SRP) 배처
물리