示例#1
0
 // Use this for initialization
 void Start()
 {
     ChooseMaterial();
     socialAgent     = GetComponent <SocialAgent>();
     travellingAgent = GetComponent <TravellingAgent>();
     wanderingAgent  = GetComponent <WanderingAgent>();
 }
示例#2
0
    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);
    }
示例#3
0
    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);
    }
示例#4
0
    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);
    }
示例#5
0
 public virtual Vector3 CalculateMovement(TravellingAgent[] partners, TravellingAgent owner, Vector3 target)
 {
     return(Vector3.zero);
 }