void Start() { List <AirVRServerStreamHandover.Streams> streams = new List <AirVRServerStreamHandover.Streams>(); AirVRServerStreamHandover.TakeAllStreamsHandedOverInPrevScene(streams); foreach (var item in streams) { AirVRCameraRig selected = notifyCameraRigWillBeBound(item.playerID); if (selected != null) { _cameraRigList.RetainCameraRig(selected); selected.BindPlayer(item.playerID, item.mediaStream, item.inputStream); if (selected.isStreaming && Delegate != null) { Delegate.AirVRCameraRigActivated(selected); } } else { onairvr_Disconnect(item.playerID); } } updateApplicationTargetFrameRate(); _eventDispatcher.MessageReceived += onAirVRMessageReceived; }
internal void UnregisterCameraRig(AirVRCameraRig cameraRig, bool applicationQuit = false) { _cameraRigList.RemoveCameraRig(cameraRig); if (applicationQuit == false && cameraRig.isBoundToClient) { cameraRig.PreHandOverStreams(); AirVRServerStreamHandover.HandOverStreamsForNextScene(new AirVRServerStreamHandover.Streams(cameraRig.playerID, cameraRig.mediaStream, cameraRig.inputStream)); if (Delegate != null) { if (cameraRig.isStreaming) { Delegate.AirVRCameraRigDeactivated(cameraRig); } Delegate.AirVRCameraRigHasBeenUnbound(cameraRig); } cameraRig.PostHandOverStreams(); } }