public override void OnInspectorGUI() { this.serializedObject.Update(); ExplosionReactor reactor = (ExplosionReactor)target; GUI.enabled = false; EditorGUILayout.PropertyField(script, true, new GUILayoutOption[0]); GUI.enabled = true; EditorGUILayout.PropertyField(effectRadius, new GUIContent("effectRadius")); EditorGUILayout.PropertyField(explosionForce, new GUIContent("explosionForce")); EditorGUILayout.PropertyField(oneShotOnly, new GUIContent("oneShotOnly")); EditorGUILayout.PropertyField(layerMask, new GUIContent("layerMask")); bool useGizmo = EditorGUILayout.Toggle("Use Gizmo", _useGizmo); if (useGizmo != _useGizmo) { _useGizmo = useGizmo; SceneView.RepaintAll(); } if (Application.isPlaying && reactor.oneShotOnly) { if (GUILayout.Button("Reset")) { reactor.ResetOneShot(); } } this.serializedObject.ApplyModifiedProperties(); }
void OnSceneGUI() { if (!_useGizmo) { return; } ExplosionReactor reactor = (ExplosionReactor)target; Handles.color = Color.yellow; reactor.effectRadius = Handles.RadiusHandle(Quaternion.identity, reactor.transform.position, reactor.effectRadius); }