public void DestroyVolumeLight(VolumeLight light) { if (volumelights.Contains(light)) { volumelights.Remove(light); } }
protected virtual void OnSceneGUI() { VolumeLight volumeLight = (VolumeLight)target; volumeBoundsHandle.handleColor = Color.yellow; volumeBoundsHandle.wireframeColor = Color.yellow; volumeBoundsHandle.center = Vector3.zero; volumeBoundsHandle.size = volumeLight.extents * 2f; Matrix4x4 tmpMat = Handles.matrix; //Handles.matrix = Matrix4x4.TRS(volumeLight.transform.position, volumeLight.transform.rotation, Vector3.one); Handles.matrix = volumeLight.transform.localToWorldMatrix; EditorGUI.BeginChangeCheck(); volumeBoundsHandle.DrawHandle(); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(volumeLight, "Change Volume Light Bounds"); volumeLight.extents = volumeBoundsHandle.size * 0.5f; } EditorGUI.BeginChangeCheck(); Vector3 lightOrigin = Handles.DoPositionHandle(volumeLight.lightOrigin, Quaternion.identity); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(volumeLight, "Move Volume Light Origin"); volumeLight.lightOrigin = lightOrigin; } Handles.matrix = tmpMat; }
public void RemoveVolumeLight(VolumeLight light, Action <VolumeLightMgr, Matrix4x4> VolumeLightMgr_PreRenderEvent) { if (!volumelights.Contains(light)) { return; } VolumeLightMgr.PreRenderEvent -= VolumeLightMgr_PreRenderEvent; }
public void AddVolumeLight(VolumeLight light, Action <VolumeLightMgr, Matrix4x4> VolumeLightMgr_PreRenderEvent) { if (volumelightEvts.Contains(VolumeLightMgr_PreRenderEvent)) { volumelightEvts.Remove(VolumeLightMgr_PreRenderEvent); } if (!volumelights.Contains(light)) { volumelights.Add(light); } volumelightEvts.Add(VolumeLightMgr_PreRenderEvent); VolumeLightMgr.PreRenderEvent += VolumeLightMgr_PreRenderEvent; }