public void CreateCharacterWithoutController(string name, Vector3 origin, Quaternion rotation)
    {
        GameObject       player           = Instantiate(Resources.Load <GameObject>("Prefabs/Player"));
        PlayerController playerController = player.GetComponent <PlayerController>();

        playerController.isOnline = true;
        player.name = "Player_" + name;
        player.transform.position      = origin;
        player.transform.rotation      = rotation;
        playerController.speed         = 2;
        playerController.nakamaTesting = nakamaTesting;

        GameObject playerMarket = Instantiate(Resources.Load <GameObject>("Prefabs/MarkText"));

        playerMarket.name = "PlayerMark_" + name;
        playerMarket.transform.position = new Vector3(0, 2, 0);
        FollowToOther ffo2 = playerMarket.GetComponent <FollowToOther>();

        ffo2.target  = player.transform;
        ffo2.modifyX = true;
        ffo2.modifyZ = true;
        ffo2.modifyY = true;

        _characters.Add(playerController);
    }
    public void CreateCharacterWithoutController(string name, Vector3 origin, Quaternion rotation, string skin)
    {
        GameObject player          = Instantiate(characterTemplate);
        GameObject playerIndicator = Instantiate(characterTextIndicatorTemplate);

        PlayerController playerController = player.GetComponent <PlayerController>();

        playerController.isOnline = true;
        player.name = "Player_" + name;
        player.tag  = "Character";
        player.transform.position      = origin;
        player.transform.rotation      = rotation;
        playerController.speed         = 2;
        playerController.nakamaTesting = nakama;

        playerIndicator.transform.position = new Vector3(origin.x, 2.3f, origin.z);
        playerIndicator.transform.rotation = Quaternion.Euler(0, -180, 0);

        //player.transform.parent = amongUsLobby.transform;

        Material[] mats = playerController.Mesh.materials;
        mats[0] = Resources.Load <Material>(skin);
        playerController.Mesh.materials       = mats;
        playerController.MeshDeadth.materials = mats;

        FollowToOther follow = playerIndicator.GetComponent <FollowToOther>();

        follow.target  = player.transform;
        follow.modifyX = true;
        follow.modifyY = true;
        follow.modifyZ = true;

        _characters.Add(playerController);

        if (UI != null)
        {
            UI.SendMessage("incrementPlayer");
        }
    }
    private void createCharacter(GameObject camera, GameObject grespawn = null)
    {
        if (playerData == null)
        {
            playerData      = new PlayerData();
            playerData.skin = skins[UnityEngine.Random.Range(0, skins.Length - 1)];
        }

        GameObject player          = Instantiate(characterTemplate);
        GameObject playerIndicator = Instantiate(characterTextIndicatorTemplate);

        player.name = "Player_" + nakama.GetSessionId();

        float            posX             = 0;
        PlayerController playerController = player.GetComponent <PlayerController>();

        if (grespawn == null)
        {
            posX = positions[UnityEngine.Random.Range(0, positions.Length - 1)].position.x;
            player.transform.position          = new Vector3(posX, 1.20f, -5f);
            playerIndicator.transform.position = new Vector3(posX, 2.3f, -5f);
        }
        else
        {
            Transform respawn = grespawn.transform.GetChild(UnityEngine.Random.Range(0, grespawn.transform.childCount - 1));
            posX = respawn.position.x;
            player.transform.position          = new Vector3(respawn.position.x, 0.38f, respawn.position.z);
            playerIndicator.transform.position = new Vector3(respawn.position.x, 1.5f, respawn.position.z);
            camera.transform.position          = new Vector3(respawn.position.x, 5.37f, respawn.position.z + 3);

            // ESto es una mierda pero no se me ocurre por ahora nada, quiero terminarlo ya....
            GameObject[] allObjects            = Resources.FindObjectsOfTypeAll <GameObject>();
            GameObject   gControllerTrampillas = null;
            foreach (GameObject go in allObjects)
            {
                if (go.name.Equals("ControllerTrampillas"))
                {
                    gControllerTrampillas = go;
                    break;
                }
            }

            TrampillasController tp2 = gControllerTrampillas.GetComponent <TrampillasController>();
            tp2.Player     = player;
            tp2.TextPlayer = playerIndicator;
            playerController.trampillasController = tp2;

            player.tag = (UnityEngine.Random.Range(0, 2) == 0) ? "CharacterPlayer" : "Impostor";

            FollowToOther follow2 = camera.GetComponent <FollowToOther>();
            follow2.target           = player.transform;
            follow2.modifyX          = true;
            follow2.modifyY          = true;
            follow2.modifyZ          = true;
            playerController.respawn = respawn;

            TripulanteOrImpostor tripulanteOrImpostor = playerIndicator.GetComponent <TripulanteOrImpostor>();
            tripulanteOrImpostor.target = player;
        }
        playerIndicator.transform.rotation = Quaternion.Euler(0, -180, 0);
        //player.transform.parent = amongUsLobby.transform;

        playerController.camera        = camera.GetComponent <Camera>();
        playerController.nakamaTesting = nakama;

        playerController.skin = playerData.skin;
        Material[] mats = playerController.Mesh.materials;
        mats[0] = Resources.Load <Material>(playerData.skin);
        playerController.Mesh.materials       = mats;
        playerController.MeshDeadth.materials = mats;

        FollowToOther follow = playerIndicator.GetComponent <FollowToOther>();

        follow.target  = player.transform;
        follow.modifyX = true;
        follow.modifyY = true;
        follow.modifyZ = true;

        playerController.nakamaTesting.updatePosition(playerController.transform.position,
                                                      playerController.transform.rotation,
                                                      playerController.character.velocity.magnitude,
                                                      playerData.skin);
    }