예제 #1
0
    //Returns vector acceleration direction towards the closer positive stimuli
    Vector3 GoToPositiveStimuli()
    {
        Vector3 stimuliVector = new Vector3();
        var     stimuliList   = flockManager.GetStimuli(this, conf.stimuliRadius);

        if (stimuliList.Count == 0)
        {
            return(stimuliVector);
        }
        float   closer = 10000000000;
        float   distanceTo;
        Vector3 direction;

        foreach (var stimuli in stimuliList)
        {
            //Calculate direction vector towards the positive stimuli
            direction  = stimuli.position - this.position;
            distanceTo = Mathf.Abs(direction.magnitude);
            if (distanceTo < closer)
            {
                stimuliVector = direction;
                closer        = distanceTo;
            }
        }
        return(stimuliVector.normalized);
    }