/**
         * 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;
        }
Esempio n. 2
0
        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>();
        }