// Use this for initialization void Start() { ChooseMaterial(); socialAgent = GetComponent <SocialAgent>(); travellingAgent = GetComponent <TravellingAgent>(); wanderingAgent = GetComponent <WanderingAgent>(); }
public override Vector3 CalculateMovement(TravellingAgent[] partners, TravellingAgent owner, Vector3 target) { Vector3 result = Vector3.zero; if (partners.Length - 1 <= 0) { return(result); } for (int i = 0; i < partners.Length; i++) { if (partners[i] != owner) { var dist = owner.transform.position - partners[i].transform.position; if (dist.magnitude > maxDistance) { result += Vector3.zero; } else { result += dist; } } } result /= partners.Length - 1; return(new Vector3(result.x, 0, result.z) * priority); }
public override Vector3 CalculateMovement(TravellingAgent[] partners, TravellingAgent owner, Vector3 target) { Vector3 center = new Vector3(0, owner.transform.position.y, 0); foreach (TravellingAgent a in partners) { center += new Vector3(a.transform.position.x, 0, a.transform.position.z); } center /= partners.Length; var dist = target - center; return(new Vector3(dist.x, 0, dist.z) * priority); }
public override Vector3 CalculateMovement(TravellingAgent[] partners, TravellingAgent owner, Vector3 target) { Vector3 result = Vector3.zero; if (partners.Length - 1 <= 0) { return(result); } for (int i = 0; i < partners.Length; i++) { if (partners[i] != owner) { result += partners[i].transform.position; } } result /= partners.Length - 1; var distToMove = result - owner.transform.position; return(new Vector3(distToMove.x, 0, distToMove.z) * priority); }
public virtual Vector3 CalculateMovement(TravellingAgent[] partners, TravellingAgent owner, Vector3 target) { return(Vector3.zero); }