From d3f213717f6e8524fbff23494cbebbaaa4c6d914 Mon Sep 17 00:00:00 2001 From: Xevion Date: Fri, 5 Jun 2020 17:59:05 -0500 Subject: [PATCH] use LookAtDirect for no lag SceneView updates, draw dotted line between latest detected neighbors, velocity display in inspector GUI, ready arc vertex inspector GUI CustomEditor --- Boids/Assets/Editor/BoidControllerEditor.cs | 4 +++- Boids/Assets/Editor/BoidEditor.cs | 20 +++++++++++++------- Boids/Assets/Scripts/BoidController.cs | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Boids/Assets/Editor/BoidControllerEditor.cs b/Boids/Assets/Editor/BoidControllerEditor.cs index 44ea563..eb2050f 100644 --- a/Boids/Assets/Editor/BoidControllerEditor.cs +++ b/Boids/Assets/Editor/BoidControllerEditor.cs @@ -54,7 +54,9 @@ public class BoidControllerEditor : UnityEditor.Editor { EditorGUI.BeginChangeCheck(); controller.circleVertexCount = EditorGUILayout.IntSlider("Circle Vertex Count", controller.circleVertexCount, 4, 360); - controller.circleWidth = EditorGUILayout.Slider("Circle Line Width", controller.circleWidth, 0.01f, 1f); + // controller.arcVertexCount = + // EditorGUILayout.IntSlider("Arc Vertex Count", controller.arcVertexCount, -1, 360); + controller.circleWidth = EditorGUILayout.Slider("Circle Line Width", controller.circleWidth, 0.01f, 1f); redraw = redraw || EditorGUI.EndChangeCheck(); // Inspector elements related to Boid Focusing have changed - redraw! diff --git a/Boids/Assets/Editor/BoidEditor.cs b/Boids/Assets/Editor/BoidEditor.cs index a696307..6686879 100644 --- a/Boids/Assets/Editor/BoidEditor.cs +++ b/Boids/Assets/Editor/BoidEditor.cs @@ -1,18 +1,24 @@ using UnityEditor; using UnityEngine; -// [CustomEditor(typeof(Boid))] -// public class BoidEditor : UnityEditor.Editor { -// public override void OnInspectorGUI() { -// base.OnInspectorGUI(); -// } -// } +[CustomEditor(typeof(Boid))] +public class BoidEditor : UnityEditor.Editor { + public override void OnInspectorGUI() { + base.OnInspectorGUI(); + + Boid boid = (Boid) target; + GUILayout.Label($"Boid heading at ({boid._velocity.x}, {boid._velocity.y})"); + } +} public class BoidGizmoDrawer { [DrawGizmo(GizmoType.NonSelected | GizmoType.Selected)] static void DrawGizmo(Boid boid, GizmoType gizmoType) { // Simply draw the # of Boids within the perceived flock + Handles.Label(boid.transform.position, $"{boid.transform.name}/{boid.latestNeighborhoodCount}"); - Handles.Label(boid.transform.position, $"{boid.latestNeighborhoodCount}"); + if(boid._isFocused) + foreach(Boid flockmate in boid.latestNeighborhood) + Handles.DrawDottedLine(boid.transform.position, flockmate.transform.position, 1f); } } \ No newline at end of file diff --git a/Boids/Assets/Scripts/BoidController.cs b/Boids/Assets/Scripts/BoidController.cs index fe999db..68aece8 100644 --- a/Boids/Assets/Scripts/BoidController.cs +++ b/Boids/Assets/Scripts/BoidController.cs @@ -82,7 +82,7 @@ public class BoidController : MonoBehaviour { // Focus on the boid in scene view when one is focused #if UNITY_EDITOR if(focusedBoid != null) - SceneView.lastActiveSceneView.LookAt(focusedBoid.transform.position, Quaternion.identity); + SceneView.lastActiveSceneView.LookAtDirect(focusedBoid.transform.position, Quaternion.identity); #endif }