示例#1
0
 public void DestroyVolumeLight(VolumeLight light)
 {
     if (volumelights.Contains(light))
     {
         volumelights.Remove(light);
     }
 }
示例#2
0
        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;
        }
示例#3
0
 public void RemoveVolumeLight(VolumeLight light, Action <VolumeLightMgr, Matrix4x4> VolumeLightMgr_PreRenderEvent)
 {
     if (!volumelights.Contains(light))
     {
         return;
     }
     VolumeLightMgr.PreRenderEvent -= VolumeLightMgr_PreRenderEvent;
 }
示例#4
0
    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;
    }