Exemple #1
0
    IEnumerator createChimera(List <GameObject> _players)
    {
        yield return(new WaitForEndOfFrame());

        if (_isHost())
        {
            Debug.Log("SOY HOST - CREAR CHIMERA");

            //Calcular punto medio
            float xPos = 0;
            float yPos = 0;

            foreach (var player in _players)
            {
                xPos += player.transform.position.x;
                yPos += player.transform.position.y;
            }

            xPos = xPos / _players.Count;
            yPos = yPos / _players.Count;

            Vector2 newPos = new Vector2(xPos, yPos);

            //Saber qué chimera crear
            GameObject chimeraTocreate = selectCorrectChimera(_players);
            string     chimeraName     = chimeraTocreate.name;

            //Crear chimera
            GameObject _chimera = PhotonNetwork.Instantiate(chimeraName, newPos, Quaternion.identity);
            _chimera.transform.position = newPos;

            foreach (var player in _players)
            {
                player.GetComponent <FusionTrigger>().IsOnFusion = true;
            }

            ChimeraController chimeraController = _chimera.GetComponent <ChimeraController>();

            //crear cadena de ids
            string ids = _players[0].GetComponent <FusionTrigger>()._myID();

            for (int i = 1; i < _players.Count; i++)
            {
                string newId = "#" + _players[i].GetComponent <FusionTrigger>()._myID();
                ids += newId;
            }

            //Se debe llamar en los demás también
            chimeraController.setPlayersInFusion(ids);                //local

            StartCoroutine(waitForSetPlayer(chimeraController, ids)); //para todas las maquinas
        }
    }
 public void setPlayersInFusion(string ids)
 {
     _chimeraController.setPlayersInFusion(ids);
 }