namespace Scripts.IA { using UnityEngine; using Scripts.Waypoints; using Mapbox.Unity.Map; using System.Collections.Generic; //! @authors Wakestufou //! @brief "Insérer description rapide" //! @details "Insérer description détaillée" public class RunnersFactory : MonoBehaviour { // Champs publiques public int nbJoueur; //<! "Insérer description de la variable" public Transform parent; //<! "Insérer description de la variable" public Runners copy; //<! "Insérer description de la variable" public List<GameObject> _listRunners; //<! "Insérer description de la variable" public float moyenneMotivation = 0; //<! "Insérer description de la variable" private System.Random rdn; //<! "Insérer description de la variable" private static RunnersFactory instance; //<! "Insérer description de la variable" private AbstractMap _map; //<! "Insérer description de la variable" //! @brief Se lance au lancement du script. //! @details "Insérer description détaillée" void Start() { _listRunners = new List<GameObject>(); _map = GameObject.Find("Map").GetComponent<AbstractMap>(); instance = this; rdn = new System.Random(); nbJoueur = 5 + Ui.fame * 2; for (int i = 0; i < nbJoueur; i++) { _listRunners.Add(Instantiate(copy, _map.GeoToWorldPosition(WaypointsFactory.getInstance().getWp()[0]), new Quaternion(0, 0, 0, 0), parent).gameObject); moyenneMotivation += _listRunners[i].GetComponent<Runners>().motivation; } moyenneMotivation /= float.Parse(_listRunners.Count.ToString()); } //! @brief Se répète toutes les 14ms (temps par défaut dans Unity). //! @details "Insérer description détaillée" private void Update() { _listRunners.Clear(); moyenneMotivation = 0; for (int i = 0; i < GameObject.Find("Sportifs").transform.childCount; i++) { _listRunners.Add(GameObject.Find("Sportifs").transform.GetChild(i).gameObject); moyenneMotivation += _listRunners[i].GetComponent<Runners>().motivation; } moyenneMotivation /= float.Parse(_listRunners.Count.ToString()); if (GameObject.Find("Sportifs").transform.childCount != 0) { Ui.motiv = moyenneMotivation; if (Ui.motiv < 0) { Ui.motiv = 0; } else if (Ui.motiv > 100) { Ui.motiv = 100; } } else { } } //! @brief "Insérer description rapide" //! @details "Insérer description détaillée" public System.Random getRandom() { return rdn; } //! @brief "Insérer description rapide" //! @details "Insérer description détaillée" public static RunnersFactory getInstance() { return instance; } } }