Расширение Light Explorer позволяет создавать собственную версию окна Light Explorer. Вы можете использовать это, чтобы адаптировать функциональность окна Light Explorer, чтобы оно работало с пользовательским Scriptable Render Pipeline (SRP) или с Конвейер рендеринга высокого разрешения, настраиваемый Lights.
Окно Light Explorer позволяет увидеть все света в вашей сценеСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Просмотрите в Словарь и отредактируйте их свойства. С помощью этого расширения вы можете расширить текущее окно несколькими способами. Например, вы можете:
- Измените вкладки, от простого изменения имени вкладки до добавления собственных настраиваемых вкладок, отображающих списки различных типов GameObject Основной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь. Это полезно, если вы хотите отобразить информацию о свойствах собственных Reflection Probesкомпонента рендеринга, который фиксирует сферический вид своего окружения. во всех направлениях, скорее как фотоаппарат. Захваченное изображение затем сохраняется как кубическая карта, которую можно использовать для объектов с отражающими материалами. Подробнее
См., например, Словарь. - Изменить столбцы на вкладке, опять же от изменения имени до добавления собственных настраиваемых столбцов. Добавление столбцов полезно, если вы хотите просмотреть дополнительные свойства Light.
Расширение Light Explorer
Чтобы расширить Light Explorer, вы можете наследовать от:
-
ILightingExplorerExtension
и переопределить методGetContentTabs
. -
Класс
DefaultLightingExplorerExtension
, который наследуется отILightingExplorerExtension
. Этот класс предоставляет вам весь контент, который уже находится в окне. Используйте это, если вы хотите переопределить только количество вкладок, заголовки каждой вкладки или отображаемые источники света. Чтобы узнать, как таким образом можно расширить Light Explorer, см. приведенный ниже пример.
Пример кода
Примеры в этом разделе показывают, как расширить класс Light Explorer по умолчанию, чтобы отображать только столбец Name для источников света и изменить количество вкладок. В вашей собственной реализации вы можете переопределить столько методов, сколько хотите.
В следующем примере показан только столбец имени для источников света:
using UnityEngine;
using UnityEditor;
[LightingExplorerExtensionAttribute(typeof(ExampleRenderPipelineAsset))]
public class SimpleExplorerExtension : DefaultLightingExplorerExtension
{
private static class Styles
{
public static readonly GUIContent Name = EditorGUIUtility.TrTextContent("Name");
}
protected override LightingExplorerTableColumn[] GetLightColumns()
{
return new[]
{
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, Styles.Name, null, 200), // 0: Name
};
}
}
В следующем примере показано только имя и включенный статус для источников света, а вкладка "Излучающие материалы" скрыта (показаны только 3 вкладки вместо 4)
using UnityEngine;
using UnityEditor;
[LightingExplorerExtensionAttribute(typeof(ExampleRenderPipelineAsset))]
public class ComplexLightExplorerExtension : DefaultLightingExplorerExtension
{
private static class Styles
{
public static readonly GUIContent Name = EditorGUIUtility.TrTextContent("Name");
public static readonly GUIContent Enabled = EditorGUIUtility.TrTextContent("Enabled");
}
protected override UnityEngine.Object[] GetLights()
{
return Resources.FindObjectsOfTypeAll();
}
protected override LightingExplorerTableColumn[] GetLightColumns()
{
return new[]
{
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, Styles.Name, null, 200), // 0: Name
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, Styles.Enabled, "m_Enabled", 25), // 1: Enabled
};
}
public override LightingExplorerTab[] GetContentTabs()
{
return new[]
{
new LightingExplorerTab("Lights", GetLights, GetLightColumns, true),
new LightingExplorerTab("2D Lights", Get2DLights, Get2DLightColumns, true),
new LightingExplorerTab("Reflection Probes", GetReflectionProbes, GetReflectionProbeColumns, true),
new LightingExplorerTab("Light Probes", GetLightProbes, GetLightProbeColumns, true),
new LightingExplorerTab("Static Emissives", GetEmissives, GetEmissivesColumns, false),
};
}
}
Полезные классы и методы
Вот список классов и методов, которые можно использовать для расширения Light Explorer:
ILightingExplorerExtension:
public virtual LightingExplorerTab[] GetContentTabs();
public virtual void OnEnable() {}
public virtual void OnDisable() {}
DefaultLightingExplorerExtension (наследуется от 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();
- Расширение Light Explorer добавлено в 2018.3