@@ -169,8 +169,6 @@ private bool isUserRoomOwner
169169 [ NonSerialized ] public bool m_IsAllMutedForAll ;
170170 public bool ArePlayerAvatarsHiddenForMe { get ; private set ; }
171171
172- private const string k_MultiplayerAvatarLayerName = "MultiplayerAvatar" ;
173-
174172 public bool IsViewOnly
175173 {
176174 get
@@ -478,38 +476,19 @@ public void MutePlayerForMe(bool muted, int playerId)
478476
479477 public bool SetPlayerAvatarsHiddenForMe ( bool hidden )
480478 {
481- int avatarLayer = LayerMask . NameToLayer ( k_MultiplayerAvatarLayerName ) ;
482- Camera playerCamera = App . VrSdk ? . GetVrCamera ( ) ;
483- Camera spectatorCamera = SketchControlsScript . m_Instance ?
484- . GetDropCampWidget ( ) ? . GetComponentInChildren < Camera > ( true ) ;
485- if ( avatarLayer < 0 || playerCamera == null || spectatorCamera == null )
486- {
487- Debug . LogWarning (
488- $ "[MultiplayerAvatarVisibility] Could not set hidden={ hidden } : " +
489- $ "avatarLayer={ avatarLayer } , playerCameraAvailable={ playerCamera != null } , " +
490- $ "spectatorCameraAvailable={ spectatorCamera != null } .") ;
491- return false ;
492- }
493-
494- int avatarMask = 1 << avatarLayer ;
495- SetCameraLayerVisible ( playerCamera , avatarMask , ! hidden ) ;
496- SetCameraLayerVisible ( spectatorCamera , avatarMask , ! hidden ) ;
497-
498- if ( ! hidden )
479+ int rendererCount = 0 ;
480+ foreach ( RemotePlayer player in m_RemotePlayers . List )
499481 {
500- foreach ( RemotePlayer player in m_RemotePlayers . List )
482+ if ( ! hidden )
501483 {
502484 player . m_IsHiddenForMe = false ;
503- SetAvatarRenderersHidden ( player , false ) ;
504485 }
486+ rendererCount += SetAvatarRenderersHidden ( player , hidden ) ;
505487 }
506488
507489 ArePlayerAvatarsHiddenForMe = hidden ;
508490 Debug . Log (
509- $ "[MultiplayerAvatarVisibility] hidden={ hidden } , " +
510- $ "playerCamera={ playerCamera . name } , playerCullingMask={ playerCamera . cullingMask } , " +
511- $ "spectatorCamera={ spectatorCamera . name } , " +
512- $ "spectatorCullingMask={ spectatorCamera . cullingMask } .") ;
491+ $ "[MultiplayerAvatarVisibility] hidden={ hidden } , rendererCount={ rendererCount } .") ;
513492 return true ;
514493 }
515494
@@ -518,71 +497,23 @@ public bool SetPlayerAvatarHiddenForMe(bool hidden, int playerId)
518497 RemotePlayer player = GetPlayerById ( playerId ) ;
519498 if ( player == null ) return false ;
520499
521- if ( ! hidden && ! ArePlayerAvatarsHiddenForMe )
522- {
523- SetAvatarLayerVisibleOnAvailableCameras ( true ) ;
524- }
525-
526500 player . m_IsHiddenForMe = hidden ;
527- int rendererCount = SetAvatarRenderersHidden ( player , hidden ) ;
501+ bool effectivelyHidden = hidden || ArePlayerAvatarsHiddenForMe ;
502+ int rendererCount = SetAvatarRenderersHidden ( player , effectivelyHidden ) ;
528503 Debug . Log (
529504 $ "[MultiplayerAvatarVisibility] playerId={ playerId } , hidden={ hidden } , " +
530- $ "rendererCount={ rendererCount } .") ;
505+ $ "effectivelyHidden= { effectivelyHidden } , rendererCount={ rendererCount } .") ;
531506 return true ;
532507 }
533508
534- private static void SetCameraLayerVisible ( Camera camera , int layerMask , bool visible )
509+ private static void InitializeAvatarVisibility ( RemotePlayer player , bool hidden )
535510 {
536- if ( visible )
537- {
538- camera . cullingMask |= layerMask ;
539- }
540- else
541- {
542- camera . cullingMask &= ~ layerMask ;
543- }
544- }
511+ if ( player ? . PlayerGameObject == null ) return ;
545512
546- private static void SetAvatarLayerVisibleOnAvailableCameras ( bool visible )
547- {
548- int avatarLayer = LayerMask . NameToLayer ( k_MultiplayerAvatarLayerName ) ;
549- if ( avatarLayer < 0 ) return ;
550-
551- int avatarMask = 1 << avatarLayer ;
552- Camera playerCamera = App . VrSdk ? . GetVrCamera ( ) ;
553- Camera spectatorCamera = SketchControlsScript . m_Instance ?
554- . GetDropCampWidget ( ) ? . GetComponentInChildren < Camera > ( true ) ;
555- if ( playerCamera != null )
556- {
557- SetCameraLayerVisible ( playerCamera , avatarMask , visible ) ;
558- }
559- if ( spectatorCamera != null )
560- {
561- SetCameraLayerVisible ( spectatorCamera , avatarMask , visible ) ;
562- }
563- }
564-
565- private static void AssignAvatarLayer ( RemotePlayer player )
566- {
567- int avatarLayer = LayerMask . NameToLayer ( k_MultiplayerAvatarLayerName ) ;
568- if ( avatarLayer < 0 || player ? . PlayerGameObject == null ) return ;
569-
570- Renderer [ ] renderers =
571- player . PlayerGameObject . GetComponentsInChildren < Renderer > ( true ) ;
572- foreach ( Renderer renderer in renderers )
573- {
574- renderer . gameObject . layer = avatarLayer ;
575- renderer . forceRenderingOff = player . m_IsHiddenForMe ;
576- }
577-
578- Camera playerCamera = App . VrSdk ? . GetVrCamera ( ) ;
579- Camera spectatorCamera = SketchControlsScript . m_Instance ?
580- . GetDropCampWidget ( ) ? . GetComponentInChildren < Camera > ( true ) ;
513+ int rendererCount = SetAvatarRenderersHidden ( player , hidden ) ;
581514 Debug . Log (
582515 $ "[MultiplayerAvatarVisibility] initialized playerId={ player . PlayerId } , " +
583- $ "hidden={ player . m_IsHiddenForMe } , rendererCount={ renderers . Length } , " +
584- $ "avatarLayer={ avatarLayer } , playerCameraMask={ playerCamera ? . cullingMask } , " +
585- $ "spectatorCameraMask={ spectatorCamera ? . cullingMask } .") ;
516+ $ "hidden={ hidden } , rendererCount={ rendererCount } .") ;
586517 }
587518
588519 private static int SetAvatarRenderersHidden ( RemotePlayer player , bool hidden )
@@ -730,11 +661,7 @@ void OnLocalPlayerJoined(int id, ITransientData<PlayerRigData> playerData)
730661
731662 void OnRemotePlayerJoined ( RemotePlayer newRemotePlayer )
732663 {
733- if ( ! ArePlayerAvatarsHiddenForMe )
734- {
735- SetAvatarLayerVisibleOnAvailableCameras ( true ) ;
736- }
737- AssignAvatarLayer ( newRemotePlayer ) ;
664+ InitializeAvatarVisibility ( newRemotePlayer , ArePlayerAvatarsHiddenForMe ) ;
738665 m_RemotePlayers . AddPlayer ( newRemotePlayer ) ;
739666
740667 if ( ! isUserRoomOwner ) return ; //below this line is only room owner responsability
0 commit comments