You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.5 KiB

5 years ago
  1. using UnityEditor;
  2. using UnityEngine;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. [CustomEditor(typeof(FogVolumeScreen))]
  6. [ExecuteInEditMode]
  7. public class FogVolumeScreenEditor : Editor
  8. {
  9. string[] layerMaskName;
  10. int layerMaskNameIndex = 0;
  11. void OnEnable()
  12. {
  13. FogVolumeScreen _target = (FogVolumeScreen)target;
  14. List<string> layerMaskList = new List<string>();
  15. for (int i = 0; i < 32; i++)
  16. {
  17. string layerName = LayerMask.LayerToName(i);
  18. if (layerName != "")
  19. {
  20. if (layerName == _target.FogVolumeLayerName)
  21. layerMaskNameIndex = layerMaskList.Count;
  22. layerMaskList.Add(layerName);
  23. }
  24. }
  25. layerMaskName = layerMaskList.ToArray();
  26. }
  27. public override void OnInspectorGUI()
  28. {
  29. FogVolumeScreen _target = (FogVolumeScreen)target;
  30. GUILayout.BeginHorizontal();
  31. EditorGUILayout.LabelField("Density layer");
  32. int newLayerMaskNameIndex = EditorGUILayout.Popup(layerMaskNameIndex, layerMaskName);
  33. if (newLayerMaskNameIndex != layerMaskNameIndex)
  34. {
  35. layerMaskNameIndex = newLayerMaskNameIndex;
  36. _target.FogVolumeLayerName = layerMaskName[layerMaskNameIndex];
  37. }
  38. GUILayout.EndHorizontal();
  39. // Draw the default inspector
  40. DrawDefaultInspector();
  41. EditorGUILayout.HelpBox("Work in progress!", MessageType.None);
  42. EditorUtility.SetDirty(target);
  43. }
  44. }