- Home /
UnitySteer control script to dynamically change the weighting of steer behaviors
I'm trying to use the unitysteer behaviors to have a flocking behavior for a bunch of boids. I've got the basic setup working with the weights for the various steer behaviors (SteerForPursuit, SteerForCoehsion, etc..) attached to a game object with an "AutonomousVehicle" component.
I'm having trouble accessing the "weight" attribute for each behavior in an attempt to change the behavior say from pursuit to wander via a control script that triggers off of collision events. I seem to be getting stuck in how to reference the "weight" variable for each behavior. Currently I'm just trying to get a list of objects that all have the tag 'boids' and then iterate through the list to get the values for each weight. Eventually I'd like to then change these but for now just referencing them would be helpful.
using UnityEngine;
using UnitySteer;
using System.Collections;
using System.Collections.Generic ;
public class FlockControl : MonoBehaviour {
//internal GameObject boid;
//GameObject[] boids = new GameObject[];
public SteerForPursuit script;
// Use this for initialization
void Awake () {
GameObject[] boids;
boids = GameObject.FindGameObjectsWithTag("boids");
foreach (GameObject boid in boids){
SteerForPursuit script;
script = boid.GetComponent("SteerForPursuit") as SteerForPursuit;
p = script.Weight.get();
Debug.Log(p);
}
Debug.Log("No. of objects in list = " + boids.length);
}
// Update is called once per frame
void FixedUpdate () {
}
}
Your answer
Follow this Question
Related Questions
Is there anything wrong with this script? It used to work but now it doesn't. 2 Answers
Access variable from another script? Health! 3 Answers
Can I auto run a script when editor launches or a project finishes loading? 4 Answers
third person double jump 1 Answer
What's the syntax for creating a skybox with a script? 2 Answers