So, I have two different player prefabs, player1 and player2. Each one has a canvas attached, canvas1 and canvas2.
I use the next code as NetworkManager:
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
using UnityEngine.UI;
using UnityEngine.Networking.NetworkSystem;
public class NetworkController : NetworkManager
{
public int chosenCharacter = 0;
public GameObject[] characters;
//subclass for sending network messages
public class NetworkMessage : MessageBase
{
public int chosenClass;
}
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId, NetworkReader extraMessageReader)
{
NetworkMessage message = extraMessageReader.ReadMessage<NetworkMessage>();
int selectedClass = message.chosenClass;
Debug.Log("server add with message " + selectedClass);
GameObject player;
Transform startPos = GetStartPosition();
if (startPos != null)
{
player = Instantiate(characters[chosenCharacter], startPos.position, startPos.rotation) as GameObject;
}
else
{
player = Instantiate(characters[chosenCharacter], Vector3.zero, Quaternion.identity) as GameObject;
}
chosenCharacter++;
NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
}
public override void OnClientConnect(NetworkConnection conn)
{
NetworkMessage test = new NetworkMessage();
test.chosenClass = chosenCharacter;
ClientScene.AddPlayer(conn, 0, test);
}
public override void OnClientSceneChanged(NetworkConnection conn)
{
//base.OnClientSceneChanged(conn);
}
}
So my problem is that when I connect with my second session it generates canvas2 over canvas1, making player one click canvas2. I would like to only generate the canvas of the player prefab for each session instead of generating them both. Any suggestion?
thanks!!