BoxSearchPlayer.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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 BoxSearchPlayer : MonoBehaviour
  8. {
  9. void Awake()
  10. {
  11. GetSearchPlayerItemPrefab().SetActive(false);
  12. }
  13. void OnEnable()
  14. {
  15. PopupMgr.ins.ClearAllTip();
  16. }
  17. Transform GetSearchPlayerItemParent()
  18. {
  19. return transform.Find("ScrollView/Viewport/Content");
  20. }
  21. GameObject GetSearchPlayerItemPrefab()
  22. {
  23. return GetSearchPlayerItemParent().Find("Item").gameObject;
  24. }
  25. InputField GetSearchInputField()
  26. {
  27. return transform.Find("SearchBox/InputField").GetComponent<InputField>();
  28. }
  29. long _lastSearchTime = 0;
  30. public void OnClick_SearchPlayer()
  31. {
  32. AudioMgr.ins.PlayBtn();
  33. if (JCUnityLib.TimeUtils.GetTimestamp() - _lastSearchTime < 3000)
  34. {
  35. PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("操作过于频繁"));
  36. return;
  37. }
  38. else
  39. {
  40. _lastSearchTime = JCUnityLib.TimeUtils.GetTimestamp();
  41. }
  42. string searchText = GetSearchInputField().text;
  43. Action<JArray> cb = delegate (JArray list) {
  44. for (int i = 1; i < GetSearchPlayerItemParent().childCount; i++)
  45. {
  46. Destroy(GetSearchPlayerItemParent().GetChild(i).gameObject);
  47. }
  48. if (list.Count > 0)
  49. {
  50. foreach (var itemInfo in list)
  51. {
  52. int userID = itemInfo.Value<int>("id");
  53. int avatarID = itemInfo.Value<int>("avatarID");
  54. string avatarUrl = itemInfo.Value<string>("avatarUrl");
  55. string nickname = itemInfo.Value<string>("nickname");
  56. bool online = itemInfo.Value<bool>("online");
  57. long offlineTime = itemInfo.Value<long>("offlineTime");
  58. GameObject o = Instantiate(GetSearchPlayerItemPrefab(), GetSearchPlayerItemParent());
  59. o.SetActive(true);
  60. o.name = userID.ToString();
  61. RoleMgr.SetAvatarToImage(
  62. o.transform.Find("Avatar/Sprite").GetComponent<Image>(),
  63. avatarID, avatarUrl
  64. );
  65. o.transform.Find("Name").GetComponent<Text>().text = nickname;
  66. Button btnYes = o.transform.Find("BtnAdd").GetComponent<Button>();
  67. btnYes.onClick.RemoveAllListeners();
  68. btnYes.onClick.AddListener(delegate () {
  69. AudioMgr.ins.PlayBtn();
  70. UserPlayer.ins.call("friendComp.requestAddFriend", userID);
  71. btnYes.interactable = false;
  72. });
  73. }
  74. }
  75. else
  76. {
  77. PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("没有搜索到目标玩家"));
  78. }
  79. };
  80. UserPlayer.ins.call("friendComp.searchPlayersByID", new object[] { searchText }, cb);
  81. }
  82. }