mirror of
https://github.com/Xevion/Boids.git
synced 2025-12-06 07:14:21 -06:00
remove start velocity and using random velocity within given limits, adjust default BoidController values
This commit is contained in:
@@ -20,8 +20,6 @@ public class BoidControllerEditor : UnityEditor.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.minSpeed = EditorGUILayout.Slider("Minimum Speed", controller.minSpeed, 0.01f, 25.0f);
|
||||
// controller.maxSpeed = EditorGUILayout.Slider("Maximum Speed", controller.maxSpeed, 0.01f, 25.0f);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
// Boids are represented by a moving, rotating triangle.
|
||||
// Boids should communicate with sibling Boids via the parental BoidController object
|
||||
@@ -14,14 +15,14 @@ public class Boid : MonoBehaviour {
|
||||
[NonSerialized] public int latestNeighborhoodCount = 0;
|
||||
[NonSerialized] public List<Boid> latestNeighborhood;
|
||||
[NonSerialized] private BoidController _parent;
|
||||
[NonSerialized] public bool _isFocused = false;
|
||||
[NonSerialized] public bool _isFocused;
|
||||
[NonSerialized] private LineRenderer[] _lineRenderers;
|
||||
|
||||
|
||||
private void Start() {
|
||||
_parent = transform.parent
|
||||
.GetComponent<BoidController>(); // Parent used to perform physics math without caching
|
||||
_velocity = Util.GetRandomVelocity(_parent.boidStartVelocity); // Acquire a Velocity Vector with a magnitude
|
||||
_velocity = Util.GetRandomVelocity(Random.Range(_parent.minSpeed, _parent.maxSpeed)); // Acquire a Velocity Vector with a magnitude
|
||||
_position = transform.position; // Track 2D position separately
|
||||
transform.name = $"Boid {transform.GetSiblingIndex()}"; // Name the Game Object so Boids can be tracked somewhat
|
||||
}
|
||||
|
||||
@@ -11,18 +11,17 @@ public class BoidController : MonoBehaviour {
|
||||
[NonSerialized] public Rect Boundary;
|
||||
|
||||
// Swarm Attributes
|
||||
[SerializeField] public int boidCount = 50;
|
||||
[SerializeField] public float boidGroupRange = 1.0f;
|
||||
[SerializeField] public float boidStartVelocity = 0.005f;
|
||||
[SerializeField] public int boidCount = 250;
|
||||
[SerializeField] public float boidGroupRange = 3.3f;
|
||||
[SerializeField] public float minSpeed;
|
||||
[SerializeField] public float maxSpeed;
|
||||
|
||||
// Boid Rules are multiplied by this to allow rule 'tweaking'
|
||||
[SerializeField] public float globalBias = 1.0f;
|
||||
[SerializeField] public float separationBias = 0.05f;
|
||||
[SerializeField] public float alignmentBias = 0.05f;
|
||||
[SerializeField] public float cohesionBias = 0.05f;
|
||||
[SerializeField] public float boundaryBias = 1f;
|
||||
[SerializeField] public float separationBias = 2f;
|
||||
[SerializeField] public float alignmentBias = 0.288f;
|
||||
[SerializeField] public float cohesionBias = 0.3f;
|
||||
[SerializeField] public float boundaryBias = 1.5f;
|
||||
|
||||
// Enable/Disable Boid Rules Altogether
|
||||
[SerializeField] public bool enableSeparation = true;
|
||||
@@ -31,12 +30,12 @@ public class BoidController : MonoBehaviour {
|
||||
[SerializeField] public bool enableBoundary = true;
|
||||
[SerializeField] public bool enableFovChecks = true;
|
||||
|
||||
[SerializeField] public float boidSeparationRange = 2.3f; // Boid Separation rule's activation distance
|
||||
[SerializeField] public float boundaryForce = 10f; // The force applied when a Boid hits the boundary
|
||||
[SerializeField] public float boidSeparationRange = 1.4f; // Boid Separation rule's activation distance
|
||||
[SerializeField] public float boundaryForce = 50f; // The force applied when a Boid hits the boundary
|
||||
[SerializeField] public bool localFlocks = true; // Calculate Local 'Neighborhood' for flocks?
|
||||
[SerializeField] public bool edgeWrapping = true; // Enforce Edge Wrapping
|
||||
[SerializeField] public float maxSteerForce = 10f;
|
||||
[SerializeField] public float boidFov = 220;
|
||||
[SerializeField] public float maxSteerForce = 400f;
|
||||
[SerializeField] public float boidFov = 240;
|
||||
|
||||
|
||||
public Boid focusedBoid; // A focused Boid has special rendering
|
||||
|
||||
Reference in New Issue
Block a user