/// <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; } }
/// <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; } } }