Ekstensi Light Explorer memungkinkan Anda untuk membuat versi Anda sendiri dari Jendela Light Explorer. Anda dapat menggunakan ini untuk menyesuaikan fungsi dari jendela Light Explorer sehingga bekerja dengan Render PipelineRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary Alkitab kustom (SRP), atau dengan kustom .
Jendela Light Explorer memungkinkan Anda melihat setiap Light di SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary Anda dan mengedit properti mereka. Dengan ekstensi ini, Anda dapat memperpanjang jendela saat ini dengan beberapa cara. Misalnya, Anda bisa:
Untuk memperpanjang Light Explorer, Anda dapat mengherankan dari:
ILightingExplorerExtension
interface dan override metode GetContentTabs
.DefaultLightingExplorerExtension
kelas, yang berwarisi dari ILightingExplorerExtension
. Kelas ini memberi Anda semua konten yang sudah ada di jendela. Gunakan ini jika Anda hanya ingin menimpa jumlah tab, judul setiap tab, atau yang lampu untuk ditampilkan. Untuk mengetahui bagaimana Anda dapat memperpanjang Light Explorer cara ini, lihat contoh di bawah ini.Contoh di bagian ini menunjukkan bagaimana untuk memperpanjang kelas Light Explorer default untuk hanya menunjukkan kolom Nama untuk Lampu, dan mengubah jumlah tab. Dalam implementasi Anda sendiri, Anda dapat menimpa banyak atau beberapa metode yang Anda inginkan.
Contoh berikut hanya menunjukkan kolom nama untuk Lampu:
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
};
}
}
Contoh berikut hanya menunjukkan nama dan status yang diaktifkan untuk Lampu, dan menyembunyikan tab Bahan Emissive (hanya menunjukkan 3 tab bukan 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<Light>();
}
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),
};
}
}
Berikut adalah daftar kelas dan metode yang dapat Anda gunakan untuk memperpanjang Light Explorer:
ILightingExplorerExtension:
public virtual LightingExplorerTab[] GetContentTabs();
public virtual void OnEnable() {}
public virtual void OnDisable() {}
DefaultLightingExplorerExtension (inherit dari 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();