Advertisement
Guest User

RaycastModifierEditor.cs

a guest
May 19th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.13 KB | None | 0 0
  1. using UnityEditor;
  2.  
  3. namespace Pathfinding {
  4.     [CustomEditor(typeof(RaycastModifier))]
  5.     [CanEditMultipleObjects]
  6.     public class RaycastModifierEditor : Editor {
  7.         SerializedProperty iterations, useRaycasting, thickRaycast, thickRaycastRadius, use2DPhysics, raycastOffset, useGraphRaycasting, subdivideEveryIter, mask;
  8.  
  9.         void OnEnable () {
  10.             iterations = serializedObject.FindProperty("iterations");
  11.             useRaycasting = serializedObject.FindProperty("useRaycasting");
  12.             thickRaycast = serializedObject.FindProperty("thickRaycast");
  13.             thickRaycastRadius = serializedObject.FindProperty("thickRaycastRadius");
  14.             use2DPhysics = serializedObject.FindProperty("use2DPhysics");
  15.             raycastOffset = serializedObject.FindProperty("raycastOffset");
  16.             useGraphRaycasting = serializedObject.FindProperty("useGraphRaycasting");
  17.             subdivideEveryIter = serializedObject.FindProperty("subdivideEveryIter");
  18.             mask = serializedObject.FindProperty("mask");
  19.         }
  20.  
  21.         public override void OnInspectorGUI () {
  22.             serializedObject.Update();
  23.  
  24.             EditorGUI.indentLevel = 0;
  25.  
  26.             EditorGUILayout.PropertyField(iterations);
  27.             if (iterations.intValue < 0 && !iterations.hasMultipleDifferentValues) iterations.intValue = 0;
  28.  
  29.             EditorGUILayout.PropertyField(useRaycasting);
  30.  
  31.             if (useRaycasting.boolValue) {
  32.                 EditorGUI.indentLevel++;
  33.  
  34.                 EditorGUILayout.PropertyField(use2DPhysics);
  35.                 EditorGUILayout.PropertyField(thickRaycast);
  36.  
  37.                 if (thickRaycast.boolValue) {
  38.                     EditorGUI.indentLevel++;
  39.                     EditorGUILayout.PropertyField(thickRaycastRadius);
  40.                     if (thickRaycastRadius.floatValue < 0 && !thickRaycastRadius.hasMultipleDifferentValues) thickRaycastRadius.floatValue = 0;
  41.                     EditorGUI.indentLevel--;
  42.                 }
  43.  
  44.                 EditorGUILayout.PropertyField(raycastOffset);
  45.                 EditorGUILayout.PropertyField(mask, new UnityEngine.GUIContent("Layer Mask", mask.tooltip));
  46.                 EditorGUI.indentLevel--;
  47.             }
  48.  
  49.             EditorGUILayout.PropertyField(useGraphRaycasting);
  50.             EditorGUILayout.PropertyField(subdivideEveryIter, new UnityEngine.GUIContent("Subdivide Every Iteration", subdivideEveryIter.tooltip));
  51.  
  52.             serializedObject.ApplyModifiedProperties();
  53.         }
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement