| 1234567891011121314151617181920212223242526272829303132333435363738394041 | using System.Linq;namespace Mirror.Examples.TanksCoop{    public class AuthorityNetworkManager : NetworkManager    {        public static new AuthorityNetworkManager singleton { get; private set; }        /// <summary>        /// Runs on both Server and Client        /// Networking is NOT initialized when this fires        /// </summary>        public override void Awake()        {            base.Awake();            singleton = this;        }        /// <summary>        /// Called on the server when a client disconnects.        /// <para>This is called on the Server when a Client disconnects from the Server. Use an override to decide what should happen when a disconnection is detected.</para>        /// </summary>        /// <param name="conn">Connection from client.</param>        public override void OnServerDisconnect(NetworkConnectionToClient conn)        {            // this code is to reset any objects belonging to disconnected clients            // make a copy because the original collection will change in the loop            NetworkIdentity[] copyOfOwnedObjects = conn.owned.ToArray();            // Loop the copy, skipping the player object.            // RemoveClientAuthority on everything else            foreach (NetworkIdentity identity in copyOfOwnedObjects)            {                if (identity != conn.identity)                    identity.RemoveClientAuthority();            }            base.OnServerDisconnect(conn);        }    }}
 |