1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using UnityEngine;
- using UnityEditor;
- using UnityEditor.IMGUI.Controls;
- namespace VolumetricFogAndMist2
- {
- [CustomEditor(typeof(VolumetricFogSubVolume))]
- public class VolumetricFogSubVolumeEditor : Editor
- {
- SerializedProperty profile, fadeDistance;
- private void OnEnable()
- {
- profile = serializedObject.FindProperty("profile");
- fadeDistance = serializedObject.FindProperty("fadeDistance");
- }
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
- EditorGUILayout.PropertyField(profile);
- EditorGUILayout.PropertyField(fadeDistance);
- serializedObject.ApplyModifiedProperties();
- }
- private readonly BoxBoundsHandle m_BoundsHandle = new BoxBoundsHandle();
- protected virtual void OnSceneGUI() {
- VolumetricFogSubVolume vl = (VolumetricFogSubVolume)target;
- Bounds bounds = vl.GetBounds();
- m_BoundsHandle.center = bounds.center;
- m_BoundsHandle.size = bounds.size;
- // draw the handle
- EditorGUI.BeginChangeCheck();
- m_BoundsHandle.DrawHandle();
- if (EditorGUI.EndChangeCheck()) {
- // record the target object before setting new values so changes can be undone/redone
- Undo.RecordObject(vl, "Change Bounds");
- // copy the handle's updated data back to the target object
- Bounds newBounds = new Bounds();
- newBounds.center = m_BoundsHandle.center;
- newBounds.size = m_BoundsHandle.size;
- vl.SetBounds(newBounds);
- }
- }
- }
- }
|