internal void CheckLateLinking(PhotonVoiceView photonVoiceView, int viewId) { if (this.Client.InRoom && photonVoiceView != null && viewId > 0) { for (int i = 0; i < this.cachedRemoteVoices.Count; i++) { RemoteVoiceLink remoteVoice = this.cachedRemoteVoices[i]; if (remoteVoice.Info.UserData is int) { int photonViewId = (int)remoteVoice.Info.UserData; if (viewId == photonViewId) { Speaker speaker = photonVoiceView.SpeakerInUse; if (this.Logger.IsInfoEnabled) { this.Logger.LogInfo("Speaker 'late-linking' for the PhotonView with ID {0} with remote voice {1}/{2}.", viewId, remoteVoice.PlayerId, remoteVoice.VoiceId); } this.LinkSpeaker(speaker, remoteVoice); break; } } else if (this.Logger.IsErrorEnabled) { this.Logger.LogError("Unexpected: VoiceInfo.UserData should be int/ViewId, received: {0}", remoteVoice.Info.UserData == null ? "null" : string.Format("{0} ({1})", remoteVoice.Info.UserData, remoteVoice.Info.UserData.GetType())); } } } }
protected override Speaker SimpleSpeakerFactory(int playerId, byte voiceId, object userData) { if (!(userData is int)) { if (this.Logger.IsWarningEnabled) { this.Logger.LogWarning("UserData ({0}) does not contain PhotonViewId. Remote voice {1}/{2} not linked. Do you have a Recorder not used with a PhotonVoiceView? is this expected?", userData == null ? "null" : userData.ToString(), playerId, voiceId); } return(null); } int photonViewId = (int)userData; PhotonView photonView = PhotonView.Find(photonViewId); if (photonView == null) { if (this.Logger.IsWarningEnabled) { this.Logger.LogWarning("No PhotonView with ID {0} found. Remote voice {1}/{2} not linked.", userData, playerId, voiceId); } return(null); } PhotonVoiceView photonVoiceView = photonView.GetComponent <PhotonVoiceView>(); if (photonVoiceView == null) { if (this.Logger.IsWarningEnabled) { this.Logger.LogWarning("No PhotonVoiceView attached to the PhotonView with ID {0}. Remote voice {1}/{2} not linked.", userData, playerId, voiceId); } return(null); } if (!photonVoiceView.IgnoreGlobalLogLevel) { photonVoiceView.LogLevel = this.LogLevel; } if (!photonVoiceView.IsSpeaker) { photonVoiceView.SetupSpeakerInUse(); } return(photonVoiceView.SpeakerInUse); }
protected override Speaker SimpleSpeakerFactory(int playerId, byte voiceId, object userData) { if (!(userData is int)) { if (this.Logger.IsWarningEnabled) { this.Logger.LogWarning("UserData ({0}) does not contain PhotonViewId. Remote voice {1}/{2} not linked", userData == null ? "null" : userData.ToString(), playerId, voiceId); } return(null); } int photonViewId = (int)userData; PhotonView photonView = PhotonView.Find(photonViewId); if (photonView == null) { if (this.Logger.IsWarningEnabled) { this.Logger.LogWarning("No PhotonView with ID {0} found. Remote voice {1}/{2} not linked.", userData, playerId, voiceId); } return(null); } PhotonVoiceView photonVoiceView = photonView.GetComponent <PhotonVoiceView>(); if (photonVoiceView == null) { if (this.Logger.IsWarningEnabled) { this.Logger.LogWarning("No PhotonVoiceView attached to the PhotonView with ID {0}. Remote voice {1}/{2} not linked.", userData, playerId, voiceId); } return(null); } if (!photonVoiceView.IsSpeaker) { if (this.Logger.IsWarningEnabled) { this.Logger.LogWarning("No Speaker found for the PhotonView with ID {0}. Remote voice {1}/{2} not linked.", userData, playerId, voiceId); } return(null); } return(photonVoiceView.SpeakerInUse); }
internal void CheckLateLinking(PhotonVoiceView photonVoiceView, int viewId) { if (this.Client.InRoom && photonVoiceView != null && viewId > 0) { for (int i = 0; i < cachedRemoteVoices.Count; i++) { RemoteVoiceLink remoteVoice = cachedRemoteVoices[i]; if (remoteVoice.Info.UserData is int) { int photonViewId = (int)remoteVoice.Info.UserData; if (viewId == photonViewId) { Speaker speaker = photonVoiceView.SpeakerInUse; if (this.Logger.IsInfoEnabled) { this.Logger.LogInfo("Speaker 'late-linking' for the PhotonView with ID {0} with remote voice {1}/{2}.", viewId, remoteVoice.PlayerId, remoteVoice.VoiceId); } LinkSpeaker(speaker, remoteVoice); break; } } } } }