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