using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Script;
using Stary.Evo;
using Stary.Evo.UIFarme;
using UnityEngine;
using UnityEngine.U2D;
using UnityEngine.UI;
using Random = UnityEngine.Random;
namespace Unity.RenderStreaming
{
public class StartPanel : BasePanel
{
///
/// 每个Participant的UI信息
///
private readonly Dictionary participantUIs = new();
///
/// 返回按钮
///
private Button _arrowLeft;
private Text _meetingId;
///
/// 房间号输入框
///
private InputField _meetingNameInput;
private Image _profileImage;
///
/// 头像按钮
///
private Button _profilePhoto;
private int _profileSpriteIndex;
private Sprite[] _profileSprites;
///
/// 随机房间号按钮
///
private Button _randomMeetingId;
///
/// 头像Sprite Atlas
///
private SpriteAtlas _spriteAtlas;
///
/// 开始按钮
///
private Button _startButton;
///
/// 时间下拉选择框
///
private Dropdown _timeDropdown;
///
/// Host连接
///
private HostConnection hostConnection;
///
/// 本地视频显示
///
private RawImage localVideoImage;
///
/// 麦克风流发送器
///
private AudioStreamSender microphoneStreamer;
[Header("Participant视频容器")] private Transform participantVideoContainer;
///
/// 渲染流管理
///
private SignalingManager renderStreaming;
[Header("核心组件")] private RenderStreamingSettings settings;
[Header("Host本地视频")] private VideoStreamSender videoStreamSender;
public override UITweenType TweenType => UITweenType.Fade;
public override string UIPath => "Canvas";
public override void Initialize(GameObject panelGo)
{
base.Initialize(panelGo);
_arrowLeft = panelGo.transform.Find("Herder/arrow-left").GetComponent