Advertisement
Guest User

Untitled

a guest
Jan 16th, 2021
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using Photon.Realtime;
  3. using UnityEngine;
  4. using System.Linq;
  5. using System;
  6.  
  7. namespace KnoxGameStudios
  8. {
  9. public class UIDisplayFriends : MonoBehaviour
  10. {
  11. [SerializeField] private Transform friendContainer;
  12. [SerializeField] private UIFriend uiFriendPrefab;
  13. [SerializeField] private RectTransform contentRect;
  14. [SerializeField] private Vector2 orginalSize;
  15. [SerializeField] private Vector2 increaseSize;
  16.  
  17. private void Awake()
  18. {
  19. contentRect = friendContainer.GetComponent<RectTransform>();
  20. orginalSize = contentRect.sizeDelta;
  21. increaseSize = new Vector2(0, uiFriendPrefab.GetComponent<RectTransform>().sizeDelta.y);
  22. PhotonFriendController.OnDisplayFriends += HandleDisplayFriends;
  23. PhotonChatFriendController.OnDisplayFriends += HandleDisplayChatFriends;
  24. }
  25.  
  26. private void OnDestroy()
  27. {
  28. PhotonFriendController.OnDisplayFriends -= HandleDisplayFriends;
  29. PhotonChatFriendController.OnDisplayFriends -= HandleDisplayChatFriends;
  30. }
  31.  
  32.  
  33. private void HandleDisplayFriends(List<FriendInfo> friends)
  34. {
  35. Debug.Log("UI remove prior friends displayed");
  36. foreach (Transform child in friendContainer)
  37. {
  38. Destroy(child.gameObject);
  39. }
  40.  
  41. Debug.Log($"UI instantiate friends display {friends.Count}");
  42. contentRect.sizeDelta = orginalSize;
  43.  
  44. var sortedFriends = friends.OrderByDescending(o => o.IsOnline ? 1 : 0).ThenBy(u => u.UserId);
  45. foreach (FriendInfo friend in sortedFriends)
  46. {
  47. UIFriend uifriend = Instantiate(uiFriendPrefab, friendContainer);
  48. uifriend.Initialize(friend);
  49. contentRect.sizeDelta += increaseSize;
  50.  
  51.  
  52. }
  53. }
  54.  
  55. private void HandleDisplayChatFriends(List<string> friends)
  56. {
  57. Debug.Log("UI remove prior friends displayed");
  58. foreach (Transform child in friendContainer)
  59. {
  60. Destroy(child.gameObject);
  61. }
  62.  
  63. Debug.Log($"UI instantiate friends display {friends.Count}");
  64. contentRect.sizeDelta = orginalSize;
  65.  
  66. foreach (string friend in friends)
  67. {
  68. UIFriend uifriend = Instantiate(uiFriendPrefab);
  69. uifriend.Initialize(friend);
  70. contentRect.sizeDelta += increaseSize;
  71. }
  72. }
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement