您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
386 行
24 KiB
386 行
24 KiB
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using UnityEngine.Experimental.Rendering;
|
|
using UnityEngine.Experimental.Rendering.HDPipeline;
|
|
|
|
namespace UnityEditor.Experimental.Rendering.HDPipeline
|
|
{
|
|
[LightingExplorerExtensionAttribute(typeof(HDRenderPipelineAsset))]
|
|
public class HDLightExplorerExtension : DefaultLightingExplorerExtension
|
|
{
|
|
struct LightData
|
|
{
|
|
public HDAdditionalLightData hdAdditionalLightData;
|
|
public AdditionalShadowData additionalShadowData;
|
|
public bool isPrefab;
|
|
public Object prefabRoot;
|
|
|
|
public LightData(HDAdditionalLightData hdAdditionalLightData, AdditionalShadowData additionalShadowData, bool isPrefab, Object prefabRoot)
|
|
{
|
|
this.hdAdditionalLightData = hdAdditionalLightData;
|
|
this.additionalShadowData = additionalShadowData;
|
|
this.isPrefab = isPrefab;
|
|
this.prefabRoot = prefabRoot;
|
|
}
|
|
}
|
|
|
|
struct VolumeData
|
|
{
|
|
public bool isGlobal;
|
|
public bool hasBakingSky;
|
|
public bool hasVisualEnvironment;
|
|
public VolumeProfile profile;
|
|
public FogType fogType;
|
|
public SkyType skyType;
|
|
|
|
public VolumeData(bool isGlobal, VolumeProfile profile, bool hasBakingSky)
|
|
{
|
|
this.isGlobal = isGlobal;
|
|
this.profile = profile;
|
|
VisualEnvironment visualEnvironment = null;
|
|
this.hasVisualEnvironment = profile.TryGet<VisualEnvironment>(typeof(VisualEnvironment), out visualEnvironment);
|
|
if (this.hasVisualEnvironment)
|
|
{
|
|
this.skyType = (SkyType)visualEnvironment.skyType.value;
|
|
this.fogType = visualEnvironment.fogType.value;
|
|
}
|
|
else
|
|
{
|
|
this.skyType = (SkyType)1;
|
|
this.fogType = (FogType)0;
|
|
}
|
|
this.hasBakingSky = hasBakingSky;
|
|
}
|
|
}
|
|
|
|
static Dictionary<Light, LightData> lightDataPairing = new Dictionary<Light, LightData>();
|
|
|
|
static Dictionary<Volume, VolumeData> volumeDataPairing = new Dictionary<Volume, VolumeData>();
|
|
|
|
static Dictionary<ReflectionProbe, HDAdditionalReflectionData> reflectionProbeDataPairing = new Dictionary<ReflectionProbe, HDAdditionalReflectionData>();
|
|
|
|
static Dictionary<PlanarReflectionProbe, HDAdditionalReflectionData> planarReflectionDataPairing = new Dictionary<PlanarReflectionProbe, HDAdditionalReflectionData>();
|
|
|
|
protected static class HDStyles
|
|
{
|
|
public static readonly GUIContent Name = EditorGUIUtility.TrTextContent("Name");
|
|
public static readonly GUIContent On = EditorGUIUtility.TrTextContent("On");
|
|
public static readonly GUIContent Type = EditorGUIUtility.TrTextContent("Type");
|
|
public static readonly GUIContent Mode = EditorGUIUtility.TrTextContent("Mode");
|
|
public static readonly GUIContent Range = EditorGUIUtility.TrTextContent("Range");
|
|
public static readonly GUIContent Color = EditorGUIUtility.TrTextContent("Color");
|
|
public static readonly GUIContent ColorFilter = EditorGUIUtility.TrTextContent("Color Filter");
|
|
public static readonly GUIContent Intensity = EditorGUIUtility.TrTextContent("Intensity");
|
|
public static readonly GUIContent IndirectMultiplier = EditorGUIUtility.TrTextContent("Indirect Multiplier");
|
|
public static readonly GUIContent Unit = EditorGUIUtility.TrTextContent("Unit");
|
|
public static readonly GUIContent ColorTemperature = EditorGUIUtility.TrTextContent("Color Temperature");
|
|
public static readonly GUIContent Shadows = EditorGUIUtility.TrTextContent("Shadows");
|
|
public static readonly GUIContent ContactShadows = EditorGUIUtility.TrTextContent("Contact Shadows");
|
|
public static readonly GUIContent ShadowResolution = EditorGUIUtility.TrTextContent("Shadows Resolution");
|
|
public static readonly GUIContent ShapeWidth = EditorGUIUtility.TrTextContent("Shape Width");
|
|
public static readonly GUIContent VolumeProfile = EditorGUIUtility.TrTextContent("Volume Profile");
|
|
public static readonly GUIContent ColorTemperatureMode = EditorGUIUtility.TrTextContent("Use Color Temperature");
|
|
public static readonly GUIContent AffectDiffuse = EditorGUIUtility.TrTextContent("Affect Diffuse");
|
|
public static readonly GUIContent AffectSpecular = EditorGUIUtility.TrTextContent("Affect Specular");
|
|
public static readonly GUIContent IsPrefab = EditorGUIUtility.TrTextContent("Prefab");
|
|
|
|
public static readonly GUIContent GlobalVolume = EditorGUIUtility.TrTextContent("Is Global");
|
|
public static readonly GUIContent Priority = EditorGUIUtility.TrTextContent("Priority");
|
|
public static readonly GUIContent HasVisualEnvironment = EditorGUIUtility.TrTextContent("Has Visual Environment");
|
|
public static readonly GUIContent FogType = EditorGUIUtility.TrTextContent("Fog Type");
|
|
public static readonly GUIContent SkyType = EditorGUIUtility.TrTextContent("Sky Type");
|
|
public static readonly GUIContent HasBakingSky = EditorGUIUtility.TrTextContent("Has Baking Sky");
|
|
|
|
public static readonly GUIContent ReflectionProbeMode = EditorGUIUtility.TrTextContent("Mode");
|
|
public static readonly GUIContent ReflectionProbeShape = EditorGUIUtility.TrTextContent("Shape");
|
|
public static readonly GUIContent ReflectionProbeShadowDistance = EditorGUIUtility.TrTextContent("Shadow Distance");
|
|
public static readonly GUIContent ReflectionProbeNearClip = EditorGUIUtility.TrTextContent("Near Clip");
|
|
public static readonly GUIContent ReflectionProbeFarClip = EditorGUIUtility.TrTextContent("Far Clip");
|
|
public static readonly GUIContent ParallaxCorrection = EditorGUIUtility.TrTextContent("Parallax Correction");
|
|
public static readonly GUIContent ReflectionProbeWeight = EditorGUIUtility.TrTextContent("Weight");
|
|
|
|
public static readonly GUIContent[] LightmapBakeTypeTitles = { EditorGUIUtility.TrTextContent("Realtime"), EditorGUIUtility.TrTextContent("Mixed"), EditorGUIUtility.TrTextContent("Baked") };
|
|
public static readonly int[] LightmapBakeTypeValues = { (int)LightmapBakeType.Realtime, (int)LightmapBakeType.Mixed, (int)LightmapBakeType.Baked };
|
|
}
|
|
|
|
public override LightingExplorerTab[] GetContentTabs()
|
|
{
|
|
return new[]
|
|
{
|
|
new LightingExplorerTab("Lights", GetHDLights, GetHDLightColumns),
|
|
new LightingExplorerTab("Volumes", GetVolumes, GetVolumeColumns),
|
|
new LightingExplorerTab("Reflection Probes", GetHDReflectionProbes, GetHDReflectionProbeColumns),
|
|
new LightingExplorerTab("Planar Reflection Probes", GetPlanarReflections, GetPlanarReflectionColumns),
|
|
new LightingExplorerTab("LightProbes", GetLightProbes, GetLightProbeColumns),
|
|
new LightingExplorerTab("Emissive Materials", GetEmissives, GetEmissivesColumns)
|
|
};
|
|
}
|
|
|
|
protected virtual UnityEngine.Object[] GetHDLights()
|
|
{
|
|
var lights = UnityEngine.Object.FindObjectsOfType<Light>();
|
|
foreach (Light light in lights)
|
|
{
|
|
if (PrefabUtility.GetCorrespondingObjectFromSource(light) != null) // We have a prefab
|
|
{
|
|
lightDataPairing[light] = new LightData(light.GetComponent<HDAdditionalLightData>(), light.GetComponent<AdditionalShadowData>(),
|
|
true, PrefabUtility.GetCorrespondingObjectFromSource(PrefabUtility.GetOutermostPrefabInstanceRoot(light.gameObject)));
|
|
}
|
|
else
|
|
{
|
|
lightDataPairing[light] = new LightData(light.GetComponent<HDAdditionalLightData>(), light.GetComponent<AdditionalShadowData>(), false, null);
|
|
}
|
|
}
|
|
return lights;
|
|
}
|
|
|
|
protected virtual UnityEngine.Object[] GetHDReflectionProbes()
|
|
{
|
|
var reflectionProbes = Object.FindObjectsOfType<ReflectionProbe>();
|
|
{
|
|
foreach (ReflectionProbe probe in reflectionProbes )
|
|
{
|
|
reflectionProbeDataPairing[probe] = probe.GetComponent<HDAdditionalReflectionData>();
|
|
}
|
|
}
|
|
return reflectionProbes;
|
|
}
|
|
|
|
protected virtual UnityEngine.Object[] GetPlanarReflections()
|
|
{
|
|
return UnityEngine.Object.FindObjectsOfType<PlanarReflectionProbe>();
|
|
}
|
|
|
|
protected virtual UnityEngine.Object[] GetVolumes()
|
|
{
|
|
var volumes = UnityEngine.Object.FindObjectsOfType<Volume>();
|
|
foreach (var volume in volumes)
|
|
{
|
|
bool hasBakingSky = volume.GetComponent<BakingSky>();
|
|
volumeDataPairing[volume] = new VolumeData(volume.isGlobal, volume.profile,hasBakingSky);
|
|
}
|
|
return volumes;
|
|
}
|
|
|
|
protected virtual LightingExplorerTableColumn[] GetHDLightColumns()
|
|
{
|
|
return new[]
|
|
{
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, HDStyles.Name, null, 200), // 0: Name
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.On, "m_Enabled", 25), // 1: Enabled
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Enum, HDStyles.Type, "m_Type", 60), // 2: Type
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Enum, HDStyles.Mode, "m_Lightmapping", 60), // 3: Mixed mode
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Enum, HDStyles.Range, "m_Range", 60), // 4: Range
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.ColorTemperatureMode, "m_UseColorTemperature", 100), // 5: Color Temperature Mode
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Color, HDStyles.Color, "m_Color", 60), // 6: Color
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.ColorTemperature, "m_ColorTemperature", 100,(r, prop, dep) => // 7: Color Temperature
|
|
{
|
|
if (prop.serializedObject.FindProperty("m_UseColorTemperature").boolValue)
|
|
{
|
|
prop = prop.serializedObject.FindProperty("m_ColorTemperature");
|
|
prop.floatValue = EditorGUI.FloatField(r,prop.floatValue);
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.Intensity, "m_Intensity", 60, (r, prop, dep) => // 8: Intensity
|
|
{
|
|
Light light = prop.serializedObject.targetObject as Light;
|
|
float intensity = lightDataPairing[light].hdAdditionalLightData.intensity;
|
|
EditorGUI.BeginChangeCheck();
|
|
intensity = EditorGUI.FloatField(r, intensity);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
Undo.RecordObject(lightDataPairing[light].hdAdditionalLightData, "Changed light intensity");
|
|
lightDataPairing[light].hdAdditionalLightData.intensity = intensity;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.Unit, "m_Intensity", 60, (r, prop, dep) => // 9: Unit
|
|
{
|
|
Light light = prop.serializedObject.targetObject as Light;
|
|
LightUnit unit = lightDataPairing[light].hdAdditionalLightData.lightUnit;
|
|
EditorGUI.BeginChangeCheck();
|
|
unit = (LightUnit)EditorGUI.EnumPopup(r, unit);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
lightDataPairing[light].hdAdditionalLightData.lightUnit = unit;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.IndirectMultiplier, "m_BounceIntensity", 90), // 10: Indirect multiplier
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.Shadows, "m_Shadows.m_Type", 60, (r, prop, dep) => // 11: Shadows
|
|
{
|
|
EditorGUI.BeginChangeCheck();
|
|
bool shadows = EditorGUI.Toggle(r, prop.intValue != (int)LightShadows.None);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
prop.intValue = shadows ? (int)LightShadows.Soft : (int)LightShadows.None;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.ContactShadows, "m_Shadows.m_Type", 100, (r, prop, dep) => // 12: Contact Shadows
|
|
{
|
|
Light light = prop.serializedObject.targetObject as Light;
|
|
bool contactShadows = lightDataPairing[light].additionalShadowData.contactShadows;
|
|
EditorGUI.BeginChangeCheck();
|
|
contactShadows = EditorGUI.Toggle(r, contactShadows);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
lightDataPairing[light].additionalShadowData.contactShadows = contactShadows;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Int, HDStyles.ShadowResolution, "m_Intensity", 60, (r, prop, dep) => // 13: Shadow resolution
|
|
{
|
|
Light light = prop.serializedObject.targetObject as Light;
|
|
int shadowResolution = lightDataPairing[light].additionalShadowData.shadowResolution;
|
|
EditorGUI.BeginChangeCheck();
|
|
shadowResolution = EditorGUI.IntField(r, shadowResolution);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
lightDataPairing[light].additionalShadowData.shadowResolution = shadowResolution;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.AffectDiffuse, "m_Intensity", 90, (r, prop, dep) => // 14: Affect Diffuse
|
|
{
|
|
Light light = prop.serializedObject.targetObject as Light;
|
|
bool affectDiffuse = lightDataPairing[light].hdAdditionalLightData.affectDiffuse;
|
|
EditorGUI.BeginChangeCheck();
|
|
affectDiffuse = EditorGUI.Toggle(r, affectDiffuse);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
lightDataPairing[light].hdAdditionalLightData.affectDiffuse = affectDiffuse;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.AffectSpecular, "m_Intensity", 90, (r, prop, dep) => // 15: Affect Specular
|
|
{
|
|
Light light = prop.serializedObject.targetObject as Light;
|
|
bool affectSpecular = lightDataPairing[light].hdAdditionalLightData.affectSpecular;
|
|
EditorGUI.BeginChangeCheck();
|
|
affectSpecular = EditorGUI.Toggle(r, affectSpecular);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
lightDataPairing[light].hdAdditionalLightData.affectSpecular = affectSpecular;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Custom, HDStyles.IsPrefab, "m_Intensity", 60, (r, prop, dep) => // 16: Prefab
|
|
{
|
|
Light light = prop.serializedObject.targetObject as Light;
|
|
bool isPrefab = lightDataPairing[light].isPrefab;
|
|
if (isPrefab)
|
|
{
|
|
EditorGUI.ObjectField(r, lightDataPairing[light].prefabRoot, typeof(GameObject),false);
|
|
}
|
|
}),
|
|
|
|
};
|
|
}
|
|
|
|
protected virtual LightingExplorerTableColumn[] GetVolumeColumns()
|
|
{
|
|
return new[]
|
|
{
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, HDStyles.Name, null, 200), // 0: Name
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.On, "m_Enabled", 25), // 1: Enabled
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.GlobalVolume, "isGlobal", 60), // 2: Is Global
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.Priority, "priority", 60), // 3: Priority
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Custom, HDStyles.VolumeProfile, "sharedProfile", 100, (r, prop, dep) => // 4: Profile
|
|
{
|
|
if (prop.objectReferenceValue != null )
|
|
EditorGUI.PropertyField(r, prop, GUIContent.none);
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.HasVisualEnvironment, "sharedProfile", 100, (r, prop, dep) =>// 5: Has Visual environment
|
|
{
|
|
Volume volume = prop.serializedObject.targetObject as Volume;
|
|
bool hasVisualEnvironment = volumeDataPairing[volume].hasVisualEnvironment;
|
|
EditorGUI.BeginDisabledGroup(true);
|
|
EditorGUI.Toggle(r, hasVisualEnvironment);
|
|
EditorGUI.EndDisabledGroup();
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Custom, HDStyles.SkyType, "sharedProfile", 100, (r, prop, dep) => // 6: Sky type
|
|
{
|
|
Volume volume = prop.serializedObject.targetObject as Volume;
|
|
if (volumeDataPairing[volume].hasVisualEnvironment)
|
|
{
|
|
SkyType skyType = volumeDataPairing[volume].skyType;
|
|
EditorGUI.BeginDisabledGroup(true);
|
|
EditorGUI.EnumPopup(r, skyType);
|
|
EditorGUI.EndDisabledGroup();
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Custom, HDStyles.FogType, "sharedProfile", 100, (r, prop, dep) => // 7: Fog type
|
|
{
|
|
Volume volume = prop.serializedObject.targetObject as Volume;
|
|
if (volumeDataPairing[volume].hasVisualEnvironment)
|
|
{
|
|
FogType fogType = volumeDataPairing[volume].fogType;
|
|
EditorGUI.BeginDisabledGroup(true);
|
|
EditorGUI.EnumPopup(r, fogType);
|
|
EditorGUI.EndDisabledGroup();
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.HasBakingSky, "sharedProfile", 100, (r, prop, dep) => // 8: Has Baking Sky
|
|
{
|
|
Volume volume = prop.serializedObject.targetObject as Volume;
|
|
bool hasBakingSky = volumeDataPairing[volume].hasBakingSky;
|
|
EditorGUI.BeginDisabledGroup(true);
|
|
EditorGUI.Toggle(r, hasBakingSky);
|
|
EditorGUI.EndDisabledGroup();
|
|
}),
|
|
};
|
|
}
|
|
|
|
protected virtual LightingExplorerTableColumn[] GetHDReflectionProbeColumns()
|
|
{
|
|
return new[]
|
|
{
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, HDStyles.Name, null, 200), // 0: Name
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.On, "m_Enabled", 25), // 1: Enabled
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Enum, HDStyles.ReflectionProbeMode, "m_Mode", 60, (r, prop, dep) => // 2: Mode
|
|
{
|
|
prop.intValue = (int)(UnityEngine.Rendering.ReflectionProbeMode)EditorGUI.EnumPopup(r,(UnityEngine.Rendering.ReflectionProbeMode)prop.intValue);
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Enum, HDStyles.ReflectionProbeShape, "m_Mode", 60, (r, prop, dep) => // 3: Shape
|
|
{
|
|
ReflectionProbe probe = prop.serializedObject.targetObject as ReflectionProbe;
|
|
InfluenceShape influenceShape = reflectionProbeDataPairing[probe].influenceVolume.shape;
|
|
EditorGUI.BeginChangeCheck();
|
|
influenceShape = (InfluenceShape)EditorGUI.EnumPopup(r, influenceShape);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
reflectionProbeDataPairing[probe].influenceVolume.shape = influenceShape;
|
|
}
|
|
}),
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.ReflectionProbeShadowDistance, "m_ShadowDistance", 90), // 4: Shadow distance
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.ReflectionProbeNearClip, "m_NearClip", 60), // 5: Near clip
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.ReflectionProbeFarClip, "m_FarClip", 60), // 6: Far clip
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.ParallaxCorrection, "m_BoxProjection", 90), // 7: Parallax correction
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.ReflectionProbeWeight, "m_Mode", 60, (r, prop, dep) => // 8: Weight
|
|
{
|
|
ReflectionProbe probe = prop.serializedObject.targetObject as ReflectionProbe;
|
|
float weight = reflectionProbeDataPairing[probe].weight;
|
|
EditorGUI.BeginChangeCheck();
|
|
weight = EditorGUI.FloatField(r, weight);
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
reflectionProbeDataPairing[probe].weight = weight;
|
|
}
|
|
}),
|
|
};
|
|
}
|
|
|
|
protected virtual LightingExplorerTableColumn[] GetPlanarReflectionColumns()
|
|
{
|
|
return new[]
|
|
{
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Name, HDStyles.Name, null, 200), // 0: Name
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Checkbox, HDStyles.On, "m_Enabled", 25), // 1: Enabled
|
|
new LightingExplorerTableColumn(LightingExplorerTableColumn.DataType.Float, HDStyles.ReflectionProbeWeight, "m_Weight", 50), // 2: Weight
|
|
};
|
|
}
|
|
|
|
public override void OnDisable()
|
|
{
|
|
lightDataPairing.Clear();
|
|
volumeDataPairing.Clear();
|
|
reflectionProbeDataPairing.Clear();
|
|
planarReflectionDataPairing.Clear();
|
|
}
|
|
}
|
|
}
|