Esempio n. 1
0
    private void DoCrowdBehavior()
    {
        bool stalkerFindind = false;

        var        total       = Random.Range(1, listPeople.Count / 3);
        List <int> listIndexes = new List <int>();

        do
        {
            var indexPerson = Random.Range(1, listPeople.Count);
            if (!listIndexes.Contains(indexPerson))
            {
                listIndexes.Add(indexPerson);
            }
        }while (listIndexes.Count < total);

        foreach (var index in listIndexes)
        {
            var indexWaypoint = Random.Range(0, listWaypoints.Count);

            PersonBehavior script = listPeople[index].GetComponent <PersonBehavior>();

            if (script.typePersonBehavior == TypePersonBehavior.Normal)
            {
                script.SetDestination(listWaypoints[indexWaypoint].transform);
            }
            else if (script.typePersonBehavior == TypePersonBehavior.Stalker)
            {
                //if (script.FindPlayer(30f))
                //{
                script.SetDestination(player.transform);
                stalkerFindind = true;
                //}
                //else
                //{
                //    listPeople[index].GetComponent<PersonBehavior>().SetDestination(listWaypoints[indexWaypoint].transform);
                //}
            }
            //else if (script.typePersonBehavior == TypePersonBehavior.Target)
            //{
            //    if (script.FindPlayer(20f))
            //    {
            //        listPeople[index].GetComponent<PersonBehavior>().SetDestination(player.transform);
            //    }
            //    else
            //    {
            //        listPeople[index].GetComponent<PersonBehavior>().SetDestination(listWaypoints[indexWaypoint].transform);
            //    }
            //}
        }

        //if (!stalkerFindind)
        //{
        //    var stalker = listPeople.Where(p => p.GetComponent<PersonBehavior>().typePersonBehavior == TypePersonBehavior.Stalker).FirstOrDefault();

        //    if (stalker != null)
        //    {
        //        stalker.GetComponent<PersonBehavior>().SetDestination(player.transform);
        //    }
        //}
    }