Files
webRtc/Assets/Script/MainPanel/MainPanel.cs
2026-05-19 22:40:52 +08:00

175 lines
5.3 KiB
C#

using System;
using System.Collections.Generic;
using Stary.Evo;
using Stary.Evo.UIFarme;
using UnityEngine;
using UnityEngine.UI;
namespace Script
{
public class MainPanel : BasePanel
{
/// <summary>
/// 退出按钮
/// </summary>
private Button _arrowLeft;
private Toggle _chatTog;
private Toggle _contactsTog;
private Toggle _meetingOrganizersTog;
/// <summary>
/// 房间ID
/// </summary>
private Text _idText;
/// <summary>
/// 会议联系人类和面板
/// </summary>
private MeetingContacts _meetingContacts;
/// <summary>
/// 会议参与者列表和面板
/// </summary>
private MeetingInfoList _meetingInfoList;
/// <summary>
/// 会议聊天面板
/// </summary>
private MeetingChat _meetingChat;
/// <summary>
/// 房间人数
/// </summary>
private Text _roomPeopleNumText;
/// <summary>
/// 时间
/// </summary>
private Text _timeText;
/// <summary>
/// 标题
/// </summary>
private Text _titleText;
public override UITweenType TweenType => UITweenType.Fade;
public override string UIPath => "Canvas";
public override void Initialize(GameObject panelGo)
{
base.Initialize(panelGo);
_titleText = panelGo.transform.Find("Header/title").GetComponent<Text>();
_timeText = panelGo.transform.Find("Header/time").GetComponent<Text>();
_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>();
_chatTog = panelGo.transform.Find("Tabs/Chat").GetComponent<Toggle>();
_contactsTog = panelGo.transform.Find("Tabs/Contacts").GetComponent<Toggle>();
_meetingOrganizersTog = panelGo.transform.Find("Tabs/MeetingOrganizers").GetComponent<Toggle>();
_meetingContacts = new MeetingContacts();
_meetingContacts.Initialize(panelGo.transform.Find("MeetingContacts").gameObject);
_meetingInfoList = new MeetingInfoList();
_meetingInfoList.Initialize(panelGo.transform.Find("MeetingInfoList").gameObject);
_meetingChat = new MeetingChat();
_meetingChat.Initialize(panelGo.transform.Find("MeetingChat").gameObject);
}
public override void OnEnter(Action complete = null)
{
base.OnEnter(complete);
_meetingInfoList.OnEnter();
_titleText.text = this.GetSystem<IGlobalConfigSystem>().GetConnectionName();
this.GetSystem<IGlobalConfigSystem>().StartConnectionTime(_timeText);
_arrowLeft.onClick.AddListener(OnArrowLeftClick);
_chatTog.onValueChanged.AddListener(OnChatTog);
_contactsTog.onValueChanged.AddListener(OnContactsTog);
_meetingOrganizersTog.onValueChanged.AddListener(OnMeetingOrganizersTog);
}
public override void OnExit(float delay = 0)
{
base.OnExit(delay);
_meetingContacts.OnExit();
_meetingInfoList.OnExit();
_arrowLeft.onClick.RemoveListener(OnArrowLeftClick);
_chatTog.onValueChanged.RemoveListener(OnChatTog);
_contactsTog.onValueChanged.RemoveListener(OnContactsTog);
_meetingOrganizersTog.onValueChanged.RemoveListener(OnMeetingOrganizersTog);
}
private void OnMeetingOrganizersTog(bool value)
{
_meetingInfoList.PanelGo.SetActive(value);
}
private void OnContactsTog(bool value)
{
_meetingContacts.PanelGo.SetActive(value);
if (value) _meetingContacts.OnEnter();
}
private void OnChatTog(bool value)
{
_meetingChat.PanelGo.SetActive(value);
}
private void OnArrowLeftClick()
{
}
public override void OnDestroy()
{
base.OnDestroy();
}
[Serializable]
public class ResponseUsers
{
/// <summary>
/// </summary>
public List<UsersItem> users { get; set; }
/// <summary>
/// </summary>
public int totalCount { get; set; }
}
[Serializable]
public class UsersItem
{
/// <summary>
/// </summary>
public string socketId { get; set; }
/// <summary>
/// </summary>
public string connectionId { get; set; }
/// <summary>
/// </summary>
public string participantId { get; set; }
/// <summary>
/// </summary>
public string role { get; set; }
/// <summary>
/// </summary>
public string userId { get; set; }
/// <summary>
/// </summary>
public string name { get; set; }
/// <summary>
/// </summary>
public string avatar { get; set; }
}
}
}