| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | 
							- /*************************************************************************
 
-  *  Copyright © 2017-2018 Mogoson. All rights reserved.
 
-  *------------------------------------------------------------------------
 
-  *  File         :  AroundCameraEditor.cs
 
-  *  Description  :  Custom editor for AroundCamera.
 
-  *------------------------------------------------------------------------
 
-  *  Author       :  Mogoson
 
-  *  Version      :  0.1.0
 
-  *  Date         :  4/9/2018
 
-  *  Description  :  Initial development version.
 
-  *  
 
-  *  Author       :  Mogoson
 
-  *  Version      :  0.1.1
 
-  *  Date         :  6/27/2018
 
-  *  Description  :  Optimize display of node.
 
-  *************************************************************************/
 
- using Mogoson.UEditor;
 
- using UnityEditor;
 
- using UnityEngine;
 
- namespace AIPagedLod
 
- {
 
-     [CustomEditor(typeof(AroundCamera), true)]
 
-     [CanEditMultipleObjects]
 
-     public class AroundCameraEditor : GenericEditor
 
-     {
 
-         #region Field and Property
 
-         protected AroundCamera Target { get { return target as AroundCamera; } }
 
-         protected Vector2 angles;
 
-         protected float distance;
 
-         #endregion
 
-         #region Protected Method
 
-         protected virtual void OnEnable()
 
-         {
 
-             if (Target.target == null)
 
-             {
 
-                 return;
 
-             }
 
-             angles = Target.transform.eulerAngles;
 
-             distance = Vector3.Distance(Target.transform.position, Target.target.position);
 
-         }
 
-         protected virtual void OnSceneGUI()
 
-         {
 
-             if (Target.target == null)
 
-             {
 
-                 return;
 
-             }
 
-             if (!Application.isPlaying)
 
-             {
 
-                 Target.transform.rotation = Quaternion.Euler(angles);
 
-                 Target.transform.position = Target.target.position - Target.transform.forward * distance;
 
-             }
 
-             DrawSceneGizmos();
 
-             DrawSceneGUI();
 
-         }
 
-         protected void DrawSceneGizmos()
 
-         {
 
-             Handles.color = Blue;
 
-             DrawAdaptiveSphereCap(Target.target.position, Quaternion.identity, NodeSize);
 
-             var direction = Target.transform.position - Target.target.position;
 
-             DrawSphereArrow(Target.target.position, Target.transform.position, NodeSize);
 
-             DrawSphereArrow(Target.target.position, direction, Target.distanceRange.min, NodeSize, "Min");
 
-             DrawSphereArrow(Target.target.position, direction, Target.distanceRange.max, NodeSize, "Max");
 
-             Handles.Label(Target.target.position, "Target");
 
-         }
 
-         public override void OnInspectorGUI()
 
-         {
 
-             base.OnInspectorGUI();
 
-             Vector2 angleValue = EditorGUILayout.Vector2Field("相机角度:", angles);
 
-             if (angleValue != angles)
 
-             {
 
-                 angles = angleValue;
 
-                 if (!Application.isPlaying)
 
-                 {
 
-                     Target.transform.rotation = Quaternion.Euler(angles);
 
-                     MarkSceneDirty();
 
-                 }
 
-             }
 
-             float distanceValue = EditorGUILayout.FloatField("相机距离:", distance);
 
-             if ( Mathf.Abs(distanceValue - distance) > 0.1f)
 
-             {
 
-                 distance = distanceValue;
 
-                 if (!Application.isPlaying)
 
-                 {
 
-                     Target.transform.position = Target.target.position - Target.transform.forward * distance;
 
-                     MarkSceneDirty();
 
-                 }
 
-             }
 
-         }
 
-         protected void DrawSceneGUI()
 
-         {
 
-             return;
 
-             var rect = new Rect(10, Screen.height - 125, 225, 75);
 
-             GUI.color = Color.white;
 
-             Handles.BeginGUI();
 
-             GUILayout.BeginArea(rect, "Current Around", "Window");
 
-             if (Application.isPlaying)
 
-             {
 
-                 EditorGUILayout.Vector2Field("Angles", Target.CurrentAngles);
 
-                 EditorGUILayout.FloatField("Distance", Target.CurrentDistance);
 
-             }
 
-             else
 
-             {
 
-                 EditorGUI.BeginChangeCheck();
 
-                 angles = EditorGUILayout.Vector2Field("Angles", angles);
 
-                 distance = EditorGUILayout.FloatField("Distance", distance);
 
-                 if (EditorGUI.EndChangeCheck())
 
-                 {
 
-                     MarkSceneDirty();
 
-                 }
 
-             }
 
-             GUILayout.EndArea();
 
-             Handles.EndGUI();
 
-         }
 
-         #endregion
 
-     }
 
- }
 
 
  |