mirror of
https://github.com/Xevion/Boids.git
synced 2025-12-10 14:06:38 -06:00
moved BoidEditor/BoidControllerEditor scripts away for proper Build procedure (no macro)
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
using UnityEngine;
|
||||
|
||||
[CustomEditor(typeof(BoidController))]
|
||||
public class BoidControllerEditor : Editor {
|
||||
public class BoidControllerEditor : UnityEditor.Editor {
|
||||
public override void OnInspectorGUI() {
|
||||
var controller = (BoidController) target;
|
||||
bool redraw = false;
|
||||
@@ -20,23 +20,26 @@ public class BoidControllerEditor : Editor {
|
||||
}
|
||||
|
||||
// Basic Boid Controller Attributes
|
||||
controller.boidStartVelocity = EditorGUILayout.Slider("Start Velocity", controller.boidStartVelocity, 0.01f, 25.0f);
|
||||
EditorGUILayout.MinMaxSlider("Speed Limit", ref controller.minSpeed, ref controller.maxSpeed, 0.01f, 25f);
|
||||
controller.boidStartVelocity =
|
||||
EditorGUILayout.Slider("Start Velocity", controller.boidStartVelocity, 0.01f, 25.0f);
|
||||
EditorGUILayout.MinMaxSlider("Speed Limit", ref controller.minSpeed, ref controller.maxSpeed, 0.01f, 25f);
|
||||
// controller.minSpeed = EditorGUILayout.Slider("Minimum Speed", controller.minSpeed, 0.01f, 25.0f);
|
||||
// controller.maxSpeed = EditorGUILayout.Slider("Maximum Speed", controller.maxSpeed, 0.01f, 25.0f);
|
||||
controller.boundaryForce = EditorGUILayout.Slider("Boundary Force", controller.boundaryForce, 0.25f, 50f);
|
||||
controller.maxSteerForce = EditorGUILayout.Slider("Max Steer Force", controller.maxSteerForce, 1f, 500f);
|
||||
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
controller.boidGroupRange = EditorGUILayout.Slider("Group Range", controller.boidGroupRange, 0.01f, 7.5f);
|
||||
controller.boidSeparationRange = EditorGUILayout.Slider("Separation Range", controller.boidSeparationRange, 0.01f, 5.0f);
|
||||
controller.boidSeparationRange =
|
||||
EditorGUILayout.Slider("Separation Range", controller.boidSeparationRange, 0.01f, 5.0f);
|
||||
controller.boidFOV = EditorGUILayout.Slider("Boid FOV", controller.boidFOV, 1f, 360f);
|
||||
redraw = redraw || EditorGUI.EndChangeCheck();
|
||||
|
||||
// Boid Bias Attributes
|
||||
|
||||
// Boid Bias Attributes
|
||||
controller.alignmentBias = EditorGUILayout.Slider("Alignment Bias", controller.alignmentBias, 0.001f, 1.5f);
|
||||
controller.cohesionBias = EditorGUILayout.Slider("Cohesion Bias", controller.cohesionBias, 0.001f, 1.5f);
|
||||
controller.separationBias = EditorGUILayout.Slider("Separation Bias", controller.separationBias, 0.001f, 2.5f);
|
||||
controller.separationBias =
|
||||
EditorGUILayout.Slider("Separation Bias", controller.separationBias, 0.001f, 2.5f);
|
||||
controller.boundaryBias = EditorGUILayout.Slider("Boundary Bias", controller.boundaryBias, 0.01f, 1.5f);
|
||||
|
||||
controller.localFlocks = EditorGUILayout.Toggle("Use Groups?", controller.localFlocks);
|
||||
@@ -49,7 +52,8 @@ public class BoidControllerEditor : Editor {
|
||||
|
||||
// Boid Rendering
|
||||
EditorGUI.BeginChangeCheck();
|
||||
controller.circleVertexCount = EditorGUILayout.IntSlider("Circle Vertex Count", controller.circleVertexCount, 4, 360);
|
||||
controller.circleVertexCount =
|
||||
EditorGUILayout.IntSlider("Circle Vertex Count", controller.circleVertexCount, 4, 360);
|
||||
controller.circleWidth = EditorGUILayout.Slider("Circle Line Width", controller.circleWidth, 0.01f, 1f);
|
||||
redraw = redraw || EditorGUI.EndChangeCheck();
|
||||
|
||||
|
||||
17
Boids/Assets/Editor/BoidEditor.cs
Normal file
17
Boids/Assets/Editor/BoidEditor.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
// [CustomEditor(typeof(Boid))]
|
||||
// public class BoidEditor : UnityEditor.Editor {
|
||||
// public override void OnInspectorGUI() {
|
||||
// base.OnInspectorGUI();
|
||||
// }
|
||||
// }
|
||||
|
||||
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.latestNeighborhoodCount}");
|
||||
}
|
||||
}
|
||||
3
Boids/Assets/Editor/BoidEditor.cs.meta
Normal file
3
Boids/Assets/Editor/BoidEditor.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4b27abbe35a49dd946d059c0ebe4cea
|
||||
timeCreated: 1590672982
|
||||
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
// Boids are represented by a moving, rotating triangle.
|
||||
@@ -11,7 +10,7 @@ public class Boid : MonoBehaviour {
|
||||
[NonSerialized] private bool _isWrappingX = false;
|
||||
[NonSerialized] private bool _isWrappingY = false;
|
||||
[NonSerialized] private Vector2 _centeringVelocity;
|
||||
[NonSerialized] private int _latestNeighborhoodCount = 0;
|
||||
[NonSerialized] public int latestNeighborhoodCount = 0;
|
||||
[NonSerialized] private BoidController _parent;
|
||||
[NonSerialized] private bool _isFocused = false;
|
||||
|
||||
@@ -36,7 +35,7 @@ public class Boid : MonoBehaviour {
|
||||
else {
|
||||
Vector2 acceleration = Vector2.zero;
|
||||
List<Boid> flock = _parent.localFlocks ? GetFlock(_parent.boids, _parent.boidGroupRange) : _parent.boids;
|
||||
_latestNeighborhoodCount = flock.Count;
|
||||
latestNeighborhoodCount = flock.Count;
|
||||
|
||||
// Calculate all offsets and multiple by magnitudes given
|
||||
if (flock.Count > 0) {
|
||||
@@ -67,13 +66,6 @@ public class Boid : MonoBehaviour {
|
||||
Wrapping();
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
private void OnDrawGizmos() {
|
||||
// Show # of Boids in Neighborhood
|
||||
Handles.Label(transform.position, $"{_latestNeighborhoodCount}");
|
||||
}
|
||||
#endif
|
||||
|
||||
private Vector2 SteerTowards(Vector2 vector) {
|
||||
Vector2 v = vector.normalized * _parent.maxSpeed - _velocity;
|
||||
return Vector2.ClampMagnitude(v, _parent.maxSteerForce);
|
||||
|
||||
Reference in New Issue
Block a user