Fix light intensity upgrade for disabled lights
if (m_UpdateAreaLightEmissiveMeshComponents)
UpdateAreaLightEmissiveMeshComponents();
// If the light is disabled in the editor we force the light upgrade from his inspector
foreach (var additionalLightData in m_AdditionalLightDatas)
additionalLightData.UpgradeLight();
}
void DrawFoldout(SerializedProperty foldoutProperty, string title, Action func)
{
// Note: We can't access to the light component in OnAfterSerialize as it is not init() yet,
// so instead we use a boolean to do the upgrade in OnEnable().
// However if the light is not enabled, the light is not upgraded.
// To solve this issue we add a callback below that will force OnEnable() to upgrade the light.
#if UNITY_EDITOR
//EditorApplication.update += EditorOnEnableWorkaround;
#endif
// However OnEnable is not call when the light is disabled, so the HDLightEditor also call
// the UpgradeLight() code in this case
version = currentVersion;
// See comment above, this is a workaround to upgrade Disabled light correctly.
void EditorOnEnableWorkaround()
private void OnEnable()
OnEnable();
EditorApplication.update -= EditorOnEnableWorkaround;
UpgradeLight();
public void UpgradeLight()
if (needsIntensityUpdate_1_0)
#pragma warning restore 0618