using UnityEngine; using UnityEngine.Assertions; using UnityEngine.Rendering.HighDefinition; namespace UnityEditor.Rendering.HighDefinition { partial class HDLightUI { [MenuItem("CONTEXT/Light/Remove Component", false, 0)] static void RemoveLight(MenuCommand menuCommand) { GameObject go = ((Light)menuCommand.context).gameObject; Assert.IsNotNull(go); Undo.IncrementCurrentGroup(); Undo.DestroyObjectImmediate(go.GetComponent()); Undo.DestroyObjectImmediate(go.GetComponent()); } [MenuItem("CONTEXT/Light/Reset", false, 0)] static void ResetLight(MenuCommand menuCommand) { GameObject go = ((Light)menuCommand.context).gameObject; Assert.IsNotNull(go); Light light = go.GetComponent(); HDAdditionalLightData lightAdditionalData = go.GetComponent(); Assert.IsNotNull(light); Assert.IsNotNull(lightAdditionalData); Undo.RecordObjects(new UnityEngine.Object[] { light, lightAdditionalData }, "Reset HD Light"); light.Reset(); // To avoid duplicating init code we copy default settings to Reset additional data // Note: we can't call this code inside the HDAdditionalLightData, thus why we don't wrap it in a Reset() function HDUtils.s_DefaultHDAdditionalLightData.CopyTo(lightAdditionalData); } } }