/** * Créer les panels pour chacun des joueurs */ IEnumerator LoadPanelPlayerGaming() { LinkedList <CommunicationDeviceBLS> ldb = FinderDevicesBLS.Instance.GetListDevicesBLS(); // on lance toutes les connexions Si problème on ne va pas créer un panneau pour le joueur foreach (var device in ldb) { device.StartGame(this); } if (IsNoPlayer()) { yield break; } RaceGameLogic rgl = GameObject.Find("GameLogic").GetComponent <RaceGameLogic>(); ldb = FinderDevicesBLS.Instance.GetListDevicesBLS(); int nbPlayer = ldb.Count; float w = 1.0f / nbPlayer; int counter = 0; foreach (var device in ldb) { int layer = LayerMask.NameToLayer("Player" + (counter + 1).ToString()); rgl.ResetDataPlayer(device.surnameDevice); Camera cam = Instantiate(ownCamera, new Vector3(0, 0, -10), Quaternion.identity); cam.rect = new Rect(0.0f, w * counter, 1.0f, w); cam.cullingMask = (1 << layer) + (1 << LayerMask.NameToLayer("UI")); // attribu deux layer à la caméra Canvas can = Instantiate(canvas, new Vector3(0, 0, 0), Quaternion.identity); can.renderMode = RenderMode.ScreenSpaceCamera; can.worldCamera = cam; can.transform.GetChild(0).gameObject.layer = layer; can.transform.GetChild(0).gameObject.GetComponent <Image>().color = device.colorPlayer; can.transform.GetChild(0).GetChild(0).gameObject.layer = layer; can.transform.GetChild(0).GetChild(1).gameObject.layer = layer; can.transform.GetChild(0).GetChild(1).gameObject.GetComponent <Ambulance>().device = device; ++counter; } // Temps d'attente pour que le joueur se prepare pour jouer yield return(new WaitForSeconds(3.0f)); loadCanvas.enabled = false; isLoading = false; }
private const float MAX_GOOD_DELAY = 0.57f; // temps maximal d'attente d'une bonne compression (105 par minute) /** * Awake est appelé pendant que le script est en cours de chargement */ void Awake() { rgl = GameObject.Find("GameLogic").GetComponent <RaceGameLogic>(); rb = GetComponent <Rigidbody2D>(); }