Example #1
0
        private void setUpNameTag(DataEntityHandle handle, bool isLocalPlayer)
        {
            if (handle.IsNull || !dataEntityCollection.TryGetComponent <SessionIdData>(handle, out var component))
            {
                return;
            }
            long   sessionId   = component.SessionId;
            string displayName = dataEntityCollection.GetComponent <DisplayNameData>(handle).DisplayName;
            bool   flag        = dataEntityCollection.HasComponent <FriendData>(handle);

            if (!activePlayerNameTags.ContainsKey(sessionId))
            {
                PlayerNameTag playerNameTagFromPool = getPlayerNameTagFromPool();
                if (isLocalPlayer)
                {
                    playerNameTagFromPool.transform.SetParent(LocalPlayerContainer, worldPositionStays: false);
                    playerNameTagFromPool.SetNameTagType(PlayerNameTag.Type.LocalPlayer);
                }
                else if (flag)
                {
                    playerNameTagFromPool.transform.SetParent(FriendPlayersContainer, worldPositionStays: false);
                    playerNameTagFromPool.SetNameTagType(PlayerNameTag.Type.Friend);
                }
                else
                {
                    playerNameTagFromPool.transform.SetParent(RemotePlayersContainer, worldPositionStays: false);
                    playerNameTagFromPool.SetNameTagType(PlayerNameTag.Type.RemotePlayer);
                }
                playerNameTagFromPool.Handle = handle;
                playerNameTagFromPool.SetNameText(displayName);
                playerNameTagFromPool.transform.localScale    = Vector3.one;
                playerNameTagFromPool.transform.localRotation = Quaternion.identity;
                Transform transform = getTransform(sessionId);
                if (transform != null)
                {
                    CameraCullingMaskHelper.SetLayerIncludingChildren(playerNameTagFromPool.transform, LayerMask.LayerToName(transform.gameObject.layer));
                }
                activePlayerNameTags.Add(sessionId, new PlayerNameTagAndRectTransform(playerNameTagFromPool, playerNameTagFromPool.GetComponent <RectTransform>()));
                if (this.OnPlayerNameAdded != null)
                {
                    this.OnPlayerNameAdded(sessionId);
                }
                if (!nameTagsActive)
                {
                    playerNameTagFromPool.SetActive(isActive: false);
                }
            }
        }
Example #2
0
        private void onPlayerRemoved(RemotePlayerData remotePlayerData)
        {
            remotePlayerData.PlayerRemoved -= onPlayerRemoved;
            DataEntityHandle entityByComponent = dataEntityCollection.GetEntityByComponent(remotePlayerData);
            long             sessionId         = dataEntityCollection.GetComponent <SessionIdData>(entityByComponent).SessionId;

            if (activePlayerNameTags.ContainsKey(sessionId))
            {
                PlayerNameTag playerNameTag = activePlayerNameTags[sessionId].PlayerNameTag;
                if (playerNameTag != null)
                {
                    playerNameTag.SetActive(isActive: false);
                    playerNameTagPool.Unspawn(playerNameTag.gameObject);
                }
                activePlayerNameTags.Remove(sessionId);
            }
        }