public SessionUsersTracker(ServerSessionsTracker sessionsTracker) { CurrentUsers = new List <User>(); serverSessionsTracker = sessionsTracker; serverSessionsTracker.CurrentUserJoined += OnCurrentUserJoinedSession; serverSessionsTracker.CurrentUserLeft += OnCurrentUserLeftSession; serverSessionsTracker.UserJoined += OnUserJoinedSession; serverSessionsTracker.UserLeft += OnUserLeftSession; }
private void ManagerInit(bool setConnection) { var config = new ClientConfig(ClientRole); config.SetIsAudioEndpoint(IsAudioEndpoint); config.SetLogWriter(logWriter); if (setConnection) { config.SetServerAddress(ServerAddress); config.SetServerPort(ServerPort); } Manager = SharingManager.Create(config); // Set up callbacks so that we know when we've connected successfully. networkConnectionAdapter = new NetworkConnectionAdapter(); networkConnectionAdapter.ConnectedCallback += OnNetworkConnectionChanged; networkConnectionAdapter.DisconnectedCallback += OnNetworkConnectionChanged; Connection.AddListener((byte)MessageID.StatusOnly, networkConnectionAdapter); SyncStateListener = new SyncStateListener(); Manager.RegisterSyncListener(SyncStateListener); Root = new SyncRoot(Manager.GetRootSyncObject()); SessionsTracker = new ServerSessionsTracker(Manager.GetSessionManager()); SessionUsersTracker = new SessionUsersTracker(SessionsTracker); RoomManagerAdapter = new RoomManagerAdapter(); CurrentRoomManager.AddListener(RoomManagerAdapter); using (var userName = new XString(DefaultUserName)) { #if UNITY_WSA && !UNITY_EDITOR Manager.SetUserName(SystemInfo.deviceName); #else if (!string.IsNullOrEmpty(Environment.UserName)) { Manager.SetUserName(Environment.UserName); } else { User localUser = Manager.GetLocalUser(); Manager.SetUserName(userName + localUser.GetID().ToString()); } #endif } }