diff --git a/Boids/Assets/Scripts/Boid.cs b/Boids/Assets/Scripts/Boid.cs index 2a57668..34c04b6 100644 --- a/Boids/Assets/Scripts/Boid.cs +++ b/Boids/Assets/Scripts/Boid.cs @@ -56,14 +56,15 @@ public class Boid : MonoBehaviour { acceleration += SteerTowards(RuleBound()) * _parent.boundaryBias; // Limit the Velocity Vector to a certain Magnitude - _velocity += acceleration; + _velocity += acceleration * Time.deltaTime; float speed = _velocity.magnitude; Vector2 dir = _velocity / speed; speed = Mathf.Clamp(speed, _parent.minSpeed, _parent.maxSpeed); _velocity = dir * speed; - _position += _velocity; + _position += _velocity * Time.deltaTime; transform.position = new Vector3(_position.x, _position.y, 0); + // transform.forward = dir; } if (_parent.edgeWrapping) diff --git a/Boids/Assets/Scripts/BoidController.cs b/Boids/Assets/Scripts/BoidController.cs index 4cc13e1..211cfc5 100644 --- a/Boids/Assets/Scripts/BoidController.cs +++ b/Boids/Assets/Scripts/BoidController.cs @@ -36,7 +36,7 @@ public class BoidController : MonoBehaviour { [SerializeField] public bool edgeWrapping = true; // Enforce Edge Wrapping [SerializeField] public int circleVertexCount = 40; // The number of vertices for circles displayed [SerializeField] public float circleWidth = 0.1f; // Width of circle - [SerializeField] public float maxSteerForce = 1f; + [SerializeField] public float maxSteerForce = 10f; public Boid focusedBoid; // A focused Boid has special rendering diff --git a/Boids/Assets/Scripts/BoidControllerEditor.cs b/Boids/Assets/Scripts/BoidControllerEditor.cs index 021d0cf..05a323f 100644 --- a/Boids/Assets/Scripts/BoidControllerEditor.cs +++ b/Boids/Assets/Scripts/BoidControllerEditor.cs @@ -21,17 +21,18 @@ public class BoidControllerEditor : Editor { // Basic Boid Controller Attributes controller.boidGroupRange = EditorGUILayout.Slider("Group Range", controller.boidGroupRange, 0.01f, 7.5f); - controller.boidStartVelocity = EditorGUILayout.Slider("Start Velocity", controller.boidStartVelocity, 0.01f, 5.0f); - controller.minSpeed = EditorGUILayout.Slider("Minimum Speed", controller.minSpeed, 0.01f, 5.0f); - controller.maxSpeed = EditorGUILayout.Slider("Maximum Speed", controller.maxSpeed, 0.01f, 5.0f); + controller.boidStartVelocity = EditorGUILayout.Slider("Start Velocity", controller.boidStartVelocity, 0.01f, 25.0f); + 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.boidSeparationRange = EditorGUILayout.Slider("Separation Range", controller.boidSeparationRange, 0.01f, 5.0f); controller.boundaryForce = EditorGUILayout.Slider("Boundary Force", controller.boundaryForce, 0.25f, 1f); + controller.maxSteerForce = EditorGUILayout.Slider("Max Steer Force", controller.maxSteerForce, 1f, 100f); // Boid Bias Attributes - controller.alignmentBias = EditorGUILayout.Slider("Alignment Bias", controller.alignmentBias, 0.001f, 0.5f); - controller.cohesionBias = EditorGUILayout.Slider("Cohesion Bias", controller.cohesionBias, 0.001f, 0.5f); - controller.separationBias = EditorGUILayout.Slider("Separation Bias", controller.separationBias, 0.001f, 0.5f); - controller.boundaryBias = EditorGUILayout.Slider("Boundary Bias", controller.boundaryBias, 0.01f, 0.5f); + 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, 1.5f); + controller.boundaryBias = EditorGUILayout.Slider("Boundary Bias", controller.boundaryBias, 0.01f, 1.5f); controller.localFlocks = EditorGUILayout.Toggle("Use Groups?", controller.localFlocks); controller.edgeWrapping = EditorGUILayout.Toggle("Enforce Wrapping?", controller.edgeWrapping);