コード例 #1
0
        /// <summary>
        /// Displays the scene GUI handles.
        /// </summary>
        protected override void DisplaySceneGUIHandles()
        {
            base.DisplaySceneGUIHandles();
            AnimationCurve newSpeedCurve = null;

            if (
                SceneGUI.BeginHandles(this.Target, "Change Movement Speed Curve") &&
                s_HandleTogglePreference.CurrentValue
                )
            {
                Vector3 up = this.Target.transform.InverseTransformDirection(Vector3.up);
                newSpeedCurve = FalloffHandles.DiscGraph(
                    target.GetHashCode(),
                    this.Target.SpeedCurve,
                    Vector3.zero,
                    Quaternion.LookRotation(Vector3.forward - Vector3.Dot(Vector3.forward, up) * up, up),
                    s_HandleColorPreference.CurrentValue,
                    "Run Speed", "Walk Speed", "Distance", "Speed"
                    );
            }
            if (SceneGUI.EndHandles())
            {
                this.Target.SpeedCurve = newSpeedCurve;
            }
        }
コード例 #2
0
 /// <summary>
 /// Displays the scene GUI handles.
 /// </summary>
 protected override void DisplaySceneGUIHandles()
 {
     base.DisplaySceneGUIHandles();
     // hearing
     if (s_HearingHandleTogglePreference.CurrentValue)
     {
         AnimationCurve newHearing = null;
         Matrix4x4      oldMatrix  = Handles.matrix;
         Handles.matrix = Matrix4x4.identity;
         if (SceneGUI.BeginHandles(this.Target, "Change Hearing Zone"))
         {
             newHearing = FalloffHandles.SphereGraph(
                 target.GetHashCode(),
                 this.Target.HearingFalloff,
                 this.Target.transform.position,
                 s_HearingHandleColorPreference.CurrentValue,
                 "", "", "Distance", "Hearing Falloff"
                 );
         }
         if (SceneGUI.EndHandles())
         {
             this.Target.HearingFalloff = newHearing;
         }
         Handles.matrix = oldMatrix;
     }
     // vision
     if (s_VisionHandleTogglePreference.CurrentValue)
     {
         float newAngle    = this.Target.VisionAngle;
         float newDistance = this.Target.VisionDistance;
         if (SceneGUI.BeginHandles(this.Target, "Change Vision Zone"))
         {
             Color c = Handles.color;
             Handles.color = s_VisionHandleColorPreference.CurrentValue;
             Vector3 up = this.Target.transform.InverseTransformDirection(Vector3.up);
             newAngle = ArcHandles.SolidWedge(
                 target.GetHashCode(),
                 this.Target.VisionAngle,
                 Vector3.zero,
                 Quaternion.LookRotation(Vector3.forward - Vector3.Dot(Vector3.forward, up) * up, up),
                 ref newDistance,
                 string.Format("{0:#} Degrees", this.Target.VisionAngle),
                 string.Format("Vision Distance: {0:#.###}", this.Target.VisionDistance)
                 );
             Handles.color = c;
         }
         if (SceneGUI.EndHandles())
         {
             this.Target.VisionAngle    = newAngle;
             this.Target.VisionDistance = newDistance;
         }
     }
 }