接入聊天

This commit is contained in:
2026-05-22 10:59:18 +08:00
parent 369783939b
commit 6f17a740e8
11 changed files with 610 additions and 984 deletions

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Script.Util;
using Stary.Evo;
using Stary.Evo.UIFarme;
using UnityEngine;
@@ -43,6 +44,8 @@ namespace Script
/// </summary>
private Text _roomPeopleNumText;
private Transform _userGrid;
/// <summary>
/// 时间
/// </summary>
@@ -57,6 +60,10 @@ namespace Script
public override string UIPath => "Canvas";
public Action<List<UsersItem>> OnUsersChangedEvnent;
private GameObjectPool _objectPool;
public override void Initialize(GameObject panelGo)
{
base.Initialize(panelGo);
@@ -65,6 +72,8 @@ namespace Script
_arrowLeft = panelGo.transform.Find("Header/arrow-left").GetComponent<Button>();
_idText = panelGo.transform.Find("MeetingInfoCard/meeting/id").GetComponent<Text>();
_roomPeopleNumText = panelGo.transform.Find("MeetingInfoCard/numberOfPeople/number").GetComponent<Text>();
_userGrid = panelGo.transform.Find("MeetingInfoCard/userGrid");
_objectPool = panelGo.transform.Find("MeetingInfoCard/pool").GetComponent<GameObjectPool>();
_chatTog = panelGo.transform.Find("Tabs/Chat").GetComponent<Toggle>();
_contactsTog = panelGo.transform.Find("Tabs/Contacts").GetComponent<Toggle>();
_meetingOrganizersTog = panelGo.transform.Find("Tabs/MeetingOrganizers").GetComponent<Toggle>();
@@ -72,23 +81,25 @@ namespace Script
_meetingContacts = new MeetingContacts();
_meetingContacts.Initialize(panelGo.transform.Find("MeetingContacts").gameObject);
_meetingInfoList = new MeetingInfoList();
_meetingInfoList.Initialize(panelGo.transform.Find("MeetingInfoList").gameObject);
_meetingInfoList.Initialize(panelGo.transform.Find("MeetingInfoList").gameObject, this);
_meetingChat = new MeetingChat();
_meetingChat.Initialize(panelGo.transform.Find("MeetingChat").gameObject);
_meetingChat.Initialize(panelGo.transform.Find("MeetingChat").gameObject, this);
}
public override void OnEnter(Action complete = null)
{
base.OnEnter(complete);
_meetingInfoList.OnEnter();
;
_titleText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionName();
this.GetSystem<IGlobalConfigSystem>().StartConnectionTime(_timeText);
_idText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionId();
_arrowLeft.onClick.AddListener(OnArrowLeftClick);
_chatTog.onValueChanged.AddListener(OnChatTog);
_contactsTog.onValueChanged.AddListener(OnContactsTog);
_meetingOrganizersTog.onValueChanged.AddListener(OnMeetingOrganizersTog);
OnUsersChangedEvnent += OnUsersChanged;
}
@@ -97,10 +108,28 @@ namespace Script
base.OnExit(delay);
_meetingContacts.OnExit();
_meetingInfoList.OnExit();
_meetingChat.OnExit();
_arrowLeft.onClick.RemoveListener(OnArrowLeftClick);
_chatTog.onValueChanged.RemoveListener(OnChatTog);
_contactsTog.onValueChanged.RemoveListener(OnContactsTog);
_meetingOrganizersTog.onValueChanged.RemoveListener(OnMeetingOrganizersTog);
OnUsersChangedEvnent += OnUsersChanged;
}
private async void OnUsersChanged(List<UsersItem> obj)
{
for (var i = 0; i < _objectPool.transform.childCount; i++)
_objectPool.Release(_objectPool.transform.GetChild(i).gameObject);
_roomPeopleNumText.text = obj.Count.ToString();
for (var i = 0; i < obj.Count; i++)
{
var entry = _objectPool.Get();
await WebRTCUtil.DownloadAndSetAvatar(obj[i].avatar,
entry.transform.Find("image").GetComponent<Image>());
}
// 更新会议聊天面板人数
_meetingChat.OnUserCountChangedEvent?.Invoke(obj.Count);
}
private void OnMeetingOrganizersTog(bool value)
@@ -117,6 +146,7 @@ namespace Script
private void OnChatTog(bool value)
{
_meetingChat.PanelGo.SetActive(value);
if (value) _meetingChat.OnEnter();
}
private void OnArrowLeftClick()