Inheritance: VoiceComponent
 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()));
             }
         }
     }
 }
示例#2
0
        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);
        }
示例#4
0
 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;
                 }
             }
         }
     }
 }