1010
1111namespace CVRNameplates
1212{
13- internal class NamePlateHandler : MonoBehaviour
13+ internal class NamePlateHandler : MonoBehaviour , IDisposable
1414 {
1515 private GameObject _maskGameObject { get ; set ; }
1616 private UnityEngine . UI . Image _maskImageComp { get ; set ; }
@@ -38,8 +38,10 @@ private void Setup()
3838
3939 //set color of nameplate depending on user
4040 if ( ABI_RC . Core . InteractionSystem . ViewManager . Instance . FriendList
41- . FirstOrDefault ( x => x . UserId == this . transform . parent . gameObject . name ) != null )
41+ . FirstOrDefault ( x => x . UserId == this . transform . parent . gameObject . name ) != null )
42+ {
4243 UserColor = Main . s_config . FriendsColor ;
44+ }
4345 else
4446 {
4547 String userRank = this . transform . parent . gameObject . GetComponent < PlayerDescriptor > ( ) . userRank ;
@@ -65,6 +67,7 @@ private void Setup()
6567 _backgroundGameObject = this . transform . Find ( "Canvas/Content/Image" ) . gameObject ;
6668 Component . DestroyImmediate ( _backgroundGameObject . GetComponent < UnityEngine . UI . Image > ( ) ) ;
6769
70+ //nameplate outline
6871 BackgroundImageComp = _backgroundGameObject . AddComponent < UnityEngine . UI . Image > ( ) ;
6972 BackgroundImageComp . type = UnityEngine . UI . Image . Type . Sliced ;
7073 BackgroundImageComp . pixelsPerUnitMultiplier = 500 ;
@@ -83,6 +86,7 @@ private void Setup()
8386 _backgroundGameObj = this . transform . Find ( "Canvas/Content/Image/ObjectMaskSlave/UserImageMask (1)" ) . gameObject ;
8487 Component . DestroyImmediate ( _backgroundGameObj . GetComponent < UnityEngine . UI . Image > ( ) ) ;
8588
89+ //outline around profile picture
8690 BackgroundMask = _backgroundGameObj . AddComponent < UnityEngine . UI . Image > ( ) ;
8791 BackgroundMask . color = UserColor ;
8892 BackgroundMask . ChangeSpriteFromString ( Main . s_config . Js . Icon ) ;
@@ -95,7 +99,7 @@ private void Setup()
9599 _friendIcon . transform . localPosition = new Vector3 ( 0.60f , 0.39f , 0 ) ;
96100 _friend = _friendIcon . GetComponent < UnityEngine . UI . Image > ( ) ;
97101 _friend . ChangeSpriteFromString ( Main . s_config . Js . Friend ) . color = UserColor ;
98- _friend . enabled = true ;
102+ _friend . enabled = true ; //friend AND mic icon object
99103
100104 MicOff = GameObject . Instantiate ( _friendIcon , _friendIcon . transform . parent . transform ) ;
101105 _micOffImage = MicOff . GetComponent < UnityEngine . UI . Image > ( ) ;
@@ -104,6 +108,7 @@ private void Setup()
104108
105109 MicOn = GameObject . Instantiate ( MicOff , _friendIcon . transform . parent . transform ) ;
106110 _micOnImage = MicOn . GetComponent < UnityEngine . UI . Image > ( ) ;
111+ //change color tint/brightness of mic icon by 30% if player is speaking
107112 _micOnColor = new Color ( UserColor . r * 1.3f , UserColor . g * 1.3f , UserColor . b * 1.3f ) ;
108113 _micOnImage . material . color = _micOnColor ;
109114 _micOnImage . ChangeSpriteFromString ( Main . s_config . Js . MicIconOn ) . color = UserColor ;
@@ -113,8 +118,19 @@ private void Setup()
113118 MicOn . SetActive ( false ) ;
114119 MicOff . SetActive ( true ) ;
115120
116- if ( UserColor == Main . s_config . DefaultColor ) _friend . enabled = false ;
121+ if ( UserColor != Main . s_config . FriendsColor ) _friend . enabled = false ;
122+ else _friend . enabled = true ;
123+
124+ if ( ABI_RC . Core . InteractionSystem . ViewManager . Instance . FriendList
125+ . FirstOrDefault ( x => x . UserId == this . transform . parent . gameObject . name ) == null )
126+ {
127+ _friend . enabled = false ;
128+ }
117129
130+ Dispose ( ) ;
131+ }
132+ public void Dispose ( )
133+ {
118134 _friend = null ;
119135 _micOnImage = null ;
120136 _micOffImage = null ;
@@ -124,6 +140,6 @@ private void Setup()
124140 _backgroundGameObj = null ;
125141 _friendIcon = null ;
126142 CancelInvoke ( nameof ( Setup ) ) ;
127- }
143+ }
128144 }
129145}
0 commit comments