BoxFriendRecommand.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using System;
  6. using Newtonsoft.Json.Linq;
  7. public class BoxFriendRecommand : MonoBehaviour
  8. {
  9. void Awake()
  10. {
  11. GetFriendRecommendItemPrefab().SetActive(false);
  12. }
  13. void OnEnable()
  14. {
  15. Refresh();
  16. }
  17. Transform GetFriendRecommendItemParent()
  18. {
  19. return transform.Find("ScrollView/Viewport/Content");
  20. }
  21. GameObject GetFriendRecommendItemPrefab()
  22. {
  23. return GetFriendRecommendItemParent().Find("Item").gameObject;
  24. }
  25. void Refresh()
  26. {
  27. for (int i = 1; i < GetFriendRecommendItemParent().childCount; i++)
  28. {
  29. Destroy(GetFriendRecommendItemParent().GetChild(i).gameObject);
  30. }
  31. Action<JArray> cb = delegate (JArray list) {
  32. for (int i = 1; i < GetFriendRecommendItemParent().childCount; i++)
  33. {
  34. Destroy(GetFriendRecommendItemParent().GetChild(i).gameObject);
  35. }
  36. if (list.Count > 0)
  37. {
  38. foreach (var itemInfo in list)
  39. {
  40. int userID = itemInfo.Value<int>("id");
  41. int avatarID = itemInfo.Value<int>("avatarID");
  42. string avatarUrl = itemInfo.Value<string>("avatarUrl");
  43. string nickname = itemInfo.Value<string>("nickname");
  44. bool online = itemInfo.Value<bool>("online");
  45. long offlineTime = itemInfo.Value<long>("offlineTime");
  46. int playCount = itemInfo.Value<int>("playCount");
  47. GameObject o = Instantiate(GetFriendRecommendItemPrefab(), GetFriendRecommendItemParent());
  48. o.SetActive(true);
  49. o.name = userID.ToString();
  50. RoleMgr.SetAvatarToImage(
  51. o.transform.Find("Avatar/Sprite").GetComponent<Image>(),
  52. avatarID, avatarUrl
  53. );
  54. o.transform.Find("Name").GetComponent<Text>().text = nickname;
  55. o.transform.Find("PlayTogether").GetComponent<Text>().text =
  56. string.Format(
  57. TextAutoLanguage2.GetTextByKey("friend_record_play-again-count"), playCount
  58. );
  59. Button btnYes = o.transform.Find("BtnAdd").GetComponent<Button>();
  60. btnYes.onClick.RemoveAllListeners();
  61. btnYes.onClick.AddListener(delegate () {
  62. AudioMgr.ins.PlayBtn();
  63. UserPlayer.ins.call("friendComp.requestAddFriend", userID);
  64. btnYes.interactable = false;
  65. });
  66. }
  67. }
  68. else
  69. {
  70. PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("没有可推荐的好友"));
  71. }
  72. };
  73. UserPlayer.ins.call("friendComp.getFriendRecommendList", null, cb);
  74. PopupMgr.ins.ClearAllTip();
  75. }
  76. }