80 lines
1.9 KiB
C#
80 lines
1.9 KiB
C#
using System;
|
|
using System.Text;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Aisu.SIM1.Face.Samples.FaceDetectionDemo
|
|
{
|
|
/// <summary>
|
|
/// MVP 操作日志窗口。
|
|
/// </summary>
|
|
public sealed class FaceDetectionDemoLogger : MonoBehaviour
|
|
{
|
|
[SerializeField] private Text m_logText; // 日志文本。
|
|
[SerializeField] private ScrollRect m_scrollRect; // 日志滚动视图。
|
|
|
|
private readonly StringBuilder m_buffer = new StringBuilder(8192); // 日志缓存。
|
|
|
|
/// <summary>
|
|
/// 绑定 UI。
|
|
/// </summary>
|
|
public void Bind(Text logText, ScrollRect scrollRect)
|
|
{
|
|
m_logText = logText;
|
|
m_scrollRect = scrollRect;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 写入普通日志。
|
|
/// </summary>
|
|
public void Info(string message)
|
|
{
|
|
Append("INFO", message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 写入错误日志。
|
|
/// </summary>
|
|
public void Error(string message)
|
|
{
|
|
Append("ERROR", message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 清空日志。
|
|
/// </summary>
|
|
public void Clear()
|
|
{
|
|
m_buffer.Length = 0;
|
|
Refresh();
|
|
}
|
|
|
|
private void Append(string level, string message)
|
|
{
|
|
m_buffer.Append('[')
|
|
.Append(DateTime.Now.ToString("HH:mm:ss"))
|
|
.Append("] ")
|
|
.Append(level)
|
|
.Append(" ")
|
|
.AppendLine(message ?? string.Empty);
|
|
Refresh();
|
|
}
|
|
|
|
private void Refresh()
|
|
{
|
|
if (m_logText != null)
|
|
{
|
|
m_logText.text = m_buffer.ToString();
|
|
}
|
|
|
|
if (m_scrollRect != null)
|
|
{
|
|
Canvas.ForceUpdateCanvases();
|
|
m_scrollRect.verticalNormalizedPosition = 0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|