예제 #1
0
        /// <summary>
        /// Callback used by the visibility system to (re)construct the set of observers
        /// that can see this object.
        /// <para>
        ///     Implementations of this callback should add network connections of
        ///     players that can see this object to the observers set.
        /// </para>
        /// </summary>
        /// <param name="observers">The new set of observers for this object.</param>
        /// <param name="initialize">True if the set of observers is being built for the first time.</param>
        public override void OnRebuildObservers(
            HashSet <NetworkConnection> observers, bool initialize)
        {
            if (_team == TeamName.UNDEFINED)
            {
                return;
            }

            foreach (NetworkConnectionToClient conn in NetworkServer.connections.Values)
            {
                NetworkedPlayerData data = conn.identity.GetComponent <NetworkedPlayerData>();
                if (data.Team == _team)
                {
                    observers.Add(conn);
                }
            }
        }
예제 #2
0
        void OnPlayerJoin(NetworkConnection conn, PlayerJoinMessage message)
        {
            // playerPrefab is the one assigned in the inspector in Network
            // Manager but you can use different prefabs per race for example
            GameObject gameobject = Instantiate(playerPrefab);

            // Apply data from the message however appropriate for your game
            // Typically Player would be a component you write with syncvars or properties
            NetworkedPlayerData player = gameobject.GetComponent <NetworkedPlayerData>();

            player.Team = message.Team;

            // TODO sync decks

            // call this to use this gameobject as the primary controller
            NetworkServer.AddPlayerForConnection(conn, gameobject);
        }
예제 #3
0
        /// <summary>
        /// Callback used by the visibility system to determine if
        /// an observer (player) can see this object.
        /// <para>
        ///     If this function returns true, the network connection
        ///     will be added as an observer.
        /// </para>
        /// </summary>
        /// <param name="conn">Network connection of a player.</param>
        /// <returns>True if the player can see this object.</returns>
        public override bool OnCheckObserver(NetworkConnection conn)
        {
            NetworkedPlayerData data = conn.identity.GetComponent <NetworkedPlayerData>();

            return(data.Team == _team);
        }