public void Start() { Vector3 tv = target.Velocidad * -1; tv = tv.normalized * distanceLeader; behind = target.Posicion + tv; newTarget = new Kinematic(); newTarget.Posicion = behind; SeparationSteering sep = new SeparationSteering(); ArriveSteeringA arr = new ArriveSteeringA(); EvadeSteering ev = new EvadeSteering(); GameObject[] objs = GameObject.FindGameObjectsWithTag("Target"); List <Agent> agents = new List <Agent>(); foreach (GameObject obj in objs) { if (!gameObject.GetComponentInParent <CilinderAgent>().Equals(obj.GetComponent <CilinderAgent>())) { agents.Add(obj.GetComponent <CilinderAgent>()); } } sep.Targets = agents; sep.Threshold = 6; sep.DecayCoefficient = 3; sep.target = target; arr.target = newTarget; ev.OriginalTarget = target; Behaviours = new List <BlendedSteering.BehaviourAndWeight> { new BehaviourAndWeight(arr, 3), new BehaviourAndWeight(sep, 4), new BehaviourAndWeight(ev, 1) }; }
public void Start() { SeparationSteering sep = new SeparationSteering(); CohesionSteering coe = new CohesionSteering(); AligmentSteering ali = new AligmentSteering(); WanderSteering wan = new WanderSteering(); GameObject[] objs = GameObject.FindGameObjectsWithTag("Target"); List <Agent> agents = new List <Agent>(); foreach (GameObject obj in objs) { if (!gameObject.GetComponentInParent <CilinderAgent>().Equals(obj.GetComponent <CilinderAgent>())) { agents.Add(obj.GetComponent <CilinderAgent>()); } } sep.Targets = agents; sep.Threshold = 5; sep.DecayCoefficient = 3; sep.target = target; coe.Targets = agents; coe.Threshold = 5; coe.target = target; ali.Targets = agents; ali.Threshold = 5; ali.DecayCoefficient = 3; ali.target = target; wan.target = target; Behaviours = new List <BlendedSteering.BehaviourAndWeight>(); Behaviours.Add(new BehaviourAndWeight(sep, 3)); Behaviours.Add(new BehaviourAndWeight(coe, 1)); Behaviours.Add(new BehaviourAndWeight(ali, 1)); Behaviours.Add(new BehaviourAndWeight(wan, 5)); }