void Start() { var streams = new List <AirXRServerStreamHandover.Streams>(); AirXRServerStreamHandover.TakeAllStreamsHandedOverInPrevScene(streams); foreach (var item in streams) { var selected = notifyCameraRigWillBeBound(item.playerID); if (selected != null) { _cameraRigList.RetainCameraRig(selected); selected.BindPlayer(item.playerID, item.mediaStream, item.inputStream); if (selected.isStreaming && Delegate != null) { Delegate.AirXRCameraRigActivated(selected); } } else { AXRServerPlugin.Disconnect(item.playerID); } } updateApplicationTargetFrameRate(); eventDispatcher.MessageReceived += onAirXRMessageReceived; }
internal void UnregisterCameraRig(AirXRCameraRig cameraRig, bool applicationQuit = false) { _cameraRigList.RemoveCameraRig(cameraRig); if (applicationQuit == false && cameraRig.isBoundToClient) { cameraRig.PreHandOverStreams(); AirXRServerStreamHandover.HandOverStreamsForNextScene(new AirXRServerStreamHandover.Streams(cameraRig.playerID, cameraRig.mediaStream, cameraRig.inputStream)); if (Delegate != null) { if (cameraRig.isStreaming) { Delegate.AirXRCameraRigDeactivated(cameraRig); } Delegate.AirXRCameraRigHasBeenUnbound(cameraRig); } cameraRig.PostHandOverStreams(); } }