123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- namespace YooAsset.Editor
- {
- internal class RemotePlayerSession
- {
- private readonly List<DebugReport> _reportList = new List<DebugReport>();
- /// <summary>
- /// 用户ID
- /// </summary>
- public int PlayerId { private set; get; }
- /// <summary>
- /// 保存的报告最大数量
- /// </summary>
- public int MaxReportCount { private set; get; }
- public int MinRangeValue
- {
- get
- {
- return 0;
- }
- }
- public int MaxRangeValue
- {
- get
- {
- int index = _reportList.Count - 1;
- if (index < 0)
- index = 0;
- return index;
- }
- }
- public RemotePlayerSession(int playerId, int maxReportCount = 1000)
- {
- PlayerId = playerId;
- MaxReportCount = maxReportCount;
- }
- /// <summary>
- /// 清理缓存数据
- /// </summary>
- public void ClearDebugReport()
- {
- _reportList.Clear();
- }
- /// <summary>
- /// 添加一个调试报告
- /// </summary>
- public void AddDebugReport(DebugReport report)
- {
- if (report == null)
- Debug.LogWarning("Invalid debug report data !");
- if (_reportList.Count >= MaxReportCount)
- _reportList.RemoveAt(0);
- _reportList.Add(report);
- }
- /// <summary>
- /// 获取调试报告
- /// </summary>
- public DebugReport GetDebugReport(int rangeIndex)
- {
- if (_reportList.Count == 0)
- return null;
- if (rangeIndex < 0 || rangeIndex >= _reportList.Count)
- return null;
- return _reportList[rangeIndex];
- }
- /// <summary>
- /// 规范索引值
- /// </summary>
- public int ClampRangeIndex(int rangeIndex)
- {
- if (rangeIndex < 0)
- return 0;
- if (rangeIndex > MaxRangeValue)
- return MaxRangeValue;
- return rangeIndex;
- }
- }
- }
|