예제 #1
0
        // Start is called before the first frame update
        public virtual void Start()
        {
            if (PlayerPrefab == null)
            {
                throw new InvalidOperationException("Assign a player in the CharacterSpawner");
            }
            if (Client != null)
            {
                if (SceneManager != null)
                {
                    SceneManager.ClientSceneChanged.AddListener(OnClientSceneChanged);
                }
                else
                {
                    Client.Authenticated.AddListener(c => Client.Send(new AddCharacterMessage()));
                }

                if (ClientObjectManager != null)
                {
                    ClientObjectManager.RegisterPrefab(PlayerPrefab);
                }
                else
                {
                    throw new InvalidOperationException("Assign a ClientObjectManager");
                }
            }
            if (Server != null)
            {
                Server.Authenticated.AddListener(OnServerAuthenticated);
                if (ServerObjectManager == null)
                {
                    throw new InvalidOperationException("Assign a ServerObjectManager");
                }
            }
        }
예제 #2
0
 internal void OnClientConnected(INetworkPlayer player)
 {
     if (ClientObjectManager != null)
     {
         ClientObjectManager.RegisterPrefab(PlayerPrefab);
     }
     else
     {
         throw new InvalidOperationException("Assign a ClientObjectManager");
     }
 }