Skip to content
Snippets Groups Projects
Commit 17d4f182 authored by MrWarzo's avatar MrWarzo 💬
Browse files

Documentation de 3 scripts

parent 62a06d70
1 merge request!79Documentation de 3 scripts
This diff is collapsed.
...@@ -17,6 +17,7 @@ namespace Scripts.IA ...@@ -17,6 +17,7 @@ namespace Scripts.IA
public List<GameObject> _listRunners; //<! "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" public float moyenneMotivation = 0; //<! "Insérer description de la variable"
// Champs privés
private System.Random rdn; //<! "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 static RunnersFactory instance; //<! "Insérer description de la variable"
private AbstractMap _map; //<! "Insérer description de la variable" private AbstractMap _map; //<! "Insérer description de la variable"
......
...@@ -61,9 +61,6 @@ ...@@ -61,9 +61,6 @@
GameObject.Find("Sportifs").GetComponent<RunnersFactory>().enabled = true; GameObject.Find("Sportifs").GetComponent<RunnersFactory>().enabled = true;
} }
//! @param start Position du @b GameObject de départ. //! @param start Position du @b GameObject de départ.
......
namespace Scripts.Waypoints namespace Scripts.Waypoints
{ {
using UnityEngine; using UnityEngine;
using Mapbox.Utils; using Mapbox.Utils;
using Mapbox.Unity.Map; using Mapbox.Unity.Map;
using Mapbox.Unity.MeshGeneration.Factories; using Mapbox.Unity.MeshGeneration.Factories;
using Mapbox.Unity.Utilities; using Mapbox.Unity.Utilities;
using System.Collections.Generic; using System.Collections.Generic;
using Scripts.Routes; using Scripts.Routes;
using Scripts.Map; using Scripts.Map;
//! @authors MapBox
//! Wakestufou
//! @brief Fait apparaître des waypoints sur la Map.
//! @details Cette classe s'occupe de transformer une liste de coordonnées GPS en waypoints liés à la map.
//! De cette maniètre la caméra peut bouger, les waypoints resterons à leur position de base.
//! du placement des waypoints et tu tracé de la route.
public class SpawnOnMap : MonoBehaviour public class SpawnOnMap : MonoBehaviour
{ {
[SerializeField] // Champs publiques
AbstractMap _map; public List<GameObject> spawnedObjects; //!< Liste des waypoints placés.
public Transform parent; //!< Parent de la liste des waypoints placés.
[SerializeField] // Champs privés
[Geocode] private float _zoom; //!< Valeur du zoom de la caméra sur la map.
Vector2d[] _locations; private static SpawnOnMap _instance; //!< Instance actuelle.
[SerializeField] AbstractMap _map; //!< Map Google Street View.
[SerializeField] [SerializeField] [Geocode] Vector2d[] _locations; //!< Liste des positions GPS des waypoints à placer.
float _spawnScale = 1f; [SerializeField] float _spawnScale = 1f; //!< Taille d'un waypoint de base.
[SerializeField] float _spawnScaleStartEnd = 6f; //!< Taille des waypoints de départ et d'arrivée.
[SerializeField] [SerializeField] GameObject _markerPrefab; //!< Préfabriqué d'un waypoint de base.
float _spawnScaleStartEnd = 6f; [SerializeField] GameObject _startPrefab; //!< Préfabriqué du waypoint de départ.
[SerializeField] GameObject _endPrefab; //!< Préfabriqué du waypoint d'arrivée.
[SerializeField]
GameObject _markerPrefab;
[SerializeField]
GameObject _prefabDebut;
[SerializeField]
GameObject _prefabFin;
public List<GameObject> _spawnedObjects;
public Transform parent;
private float _zoom;
private static SpawnOnMap instance;
//! @brief Se lance au lancement du script.
//! @details Crée les waypoints sur la map à partir des coordonnées GPS.
void Start() void Start()
{ {
instance = this; _instance = this;
List<Vector2d> Waypoints = new List<Vector2d>(WaypointsFactory.getInstance().getWp()); List<Vector2d> Waypoints = new List<Vector2d>(WaypointsFactory.getInstance().getWp());
_locations = new Vector2d[Waypoints.Count]; _locations = new Vector2d[Waypoints.Count];
_spawnedObjects = new List<GameObject>(); spawnedObjects = new List<GameObject>();
for (int i = 0; i < _locations.Length; i++) for (int i = 0; i < _locations.Length; i++)
{ {
_locations[i] = Waypoints[i]; _locations[i] = Waypoints[i];
var instances = Instantiate(_markerPrefab, parent); ; var _instances = Instantiate(_markerPrefab, parent); ;
if (i == 0) if (i == 0)
{ {
instances = Instantiate(_prefabDebut, parent); _instances = Instantiate(_startPrefab, parent);
instances.transform.localScale = new Vector3(_spawnScaleStartEnd, _spawnScaleStartEnd, _spawnScaleStartEnd); _instances.transform.localScale = new Vector3(_spawnScaleStartEnd, _spawnScaleStartEnd, _spawnScaleStartEnd);
} }
else if (i == _locations.Length - 1) else if (i == _locations.Length - 1)
{ {
instances = Instantiate(_prefabFin, parent); _instances = Instantiate(_endPrefab, parent);
instances.transform.localScale = new Vector3(_spawnScaleStartEnd, _spawnScaleStartEnd, _spawnScaleStartEnd); _instances.transform.localScale = new Vector3(_spawnScaleStartEnd, _spawnScaleStartEnd, _spawnScaleStartEnd);
} }
else else
{ {
instances.transform.localScale = new Vector3(_spawnScale, _spawnScale, _spawnScale); _instances.transform.localScale = new Vector3(_spawnScale, _spawnScale, _spawnScale);
} }
instances.transform.localPosition = _map.GeoToWorldPosition(_locations[i], true); _instances.transform.localPosition = _map.GeoToWorldPosition(_locations[i], true);
_spawnedObjects.Add(instances); spawnedObjects.Add(_instances);
} }
//GameObject.Find("Map").GetComponent<QuadTreeCameraMovement>().enabled = true;
//_cam = GameObject.Find("GameManager").GetComponent<QuadTreeCameraMovement>();
//_cam.enabled = true;
//_cam.minZoom = 0;
_zoom = _map.Zoom; _zoom = _map.Zoom;
} }
//! @brief Se répète toutes les 14ms (temps par défaut dans Unity).
//! @details Met à jour les waypoints de la map afin qu'ils gardent leur place réelle et non leur position Unity.
private void Update() private void Update()
{ {
int count = _spawnedObjects.Count; int count = spawnedObjects.Count;
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
var spawnedObject = _spawnedObjects[i]; var spawnedObject = spawnedObjects[i];
var location = _locations[i]; var location = _locations[i];
spawnedObject.transform.localPosition = _map.GeoToWorldPosition(location, true); spawnedObject.transform.localPosition = _map.GeoToWorldPosition(location, true);
spawnedObject.transform.localScale = new Vector3(_spawnScale, _spawnScale, _spawnScale); spawnedObject.transform.localScale = new Vector3(_spawnScale, _spawnScale, _spawnScale);
...@@ -88,12 +81,11 @@ ...@@ -88,12 +81,11 @@
if (VerifVisible()) if (VerifVisible())
{ {
GameObject.Find("GameManager").GetComponent<RouteTracer>().enabled = true; GameObject.Find("GameManager").GetComponent<RouteTracer>().enabled = true;
//this.enabled = false; }
} else if (_zoom <= 2) else if (_zoom <= 2)
{ {
GameObject.Find("GameManager").GetComponent<RouteTracer>().enabled = true; GameObject.Find("GameManager").GetComponent<RouteTracer>().enabled = true;
//this.enabled = false; }
}
else else
{ {
_zoom -= 0.25f; _zoom -= 0.25f;
...@@ -101,24 +93,32 @@ ...@@ -101,24 +93,32 @@
} }
} }
//! @brief Test la visibilité des waypoints.
//! @details Si un waypoints n'est dans le champs de vision de la caméra.
//! @return @e bool Si un waypoint n'est pas visible renvoie @b false, sinon renvoie @b true
private bool VerifVisible() private bool VerifVisible()
{ {
bool verif = true; bool verif = true;
for (int i = 0; i<_spawnedObjects.Count; i++) for (int i = 0; i < spawnedObjects.Count; i++)
{ {
if (!_spawnedObjects[i].GetComponent<Renderer>().isVisible) verif = false; if (!spawnedObjects[i].GetComponent<Renderer>().isVisible) verif = false;
} }
return verif; return verif;
} }
//! @brief Récupère les objets crées.
//! @return @e List<GameObject> Liste des waypoints qui ont été placés.
public List<GameObject> getSpawnedObject() public List<GameObject> getSpawnedObject()
{ {
return _spawnedObjects; return spawnedObjects;
} }
//! @brief Récupère l'instance de Waypoints.SpawnOnMap
//! @details Récupère l'instance du script actuel afin de respecter un patterne @b singleton.
//! @return @e SpawnOnMap Instance actuelle.
public static SpawnOnMap getInstance() public static SpawnOnMap getInstance()
{ {
return instance; return _instance;
} }
} }
} }
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment