using System;
using System.Collections.Generic;
using UnityEngine;
namespace RedCircuit.AIAssistant
{
///
/// 聊天 UI 控制器,处理消息收发与流式显示。
///
public class AIChatController : MonoBehaviour
{
/// 聊天面板是否可见
public bool IsVisible { get; private set; }
/// 消息列表 (用于 UI 渲染)
public List Messages { get; } = new();
/// 显示聊天面板
public void Show()
{
IsVisible = true;
// TODO: 播放面板展开动画
}
/// 隐藏聊天面板
public void Hide()
{
IsVisible = false;
// TODO: 播放面板收起动画
}
/// 追加用户消息到 UI
public void AppendUserMessage(string content)
{
var msg = new ChatMessage
{
Role = MessageRole.User,
Content = content,
Timestamp = DateTime.Now
};
Messages.Add(msg);
// TODO: 实例化用户消息气泡 UI
}
/// 追加 AI 消息到 UI (支持流式追加)
public void AppendAIMessage(string content)
{
var msg = new ChatMessage
{
Role = MessageRole.Assistant,
Content = content,
Timestamp = DateTime.Now
};
Messages.Add(msg);
// TODO: 实例化 AI 消息气泡 UI,支持打字机效果
}
/// 追加系统消息
public void AppendSystemMessage(string content)
{
var msg = new ChatMessage
{
Role = MessageRole.System,
Content = content,
Timestamp = DateTime.Now
};
Messages.Add(msg);
// TODO: 实例化系统消息 (居中灰色样式)
}
/// 追加错误消息
public void AppendErrorMessage(string content)
{
AppendSystemMessage($"[错误] {content}");
}
/// 显示操作确认提示
public void ShowConfirmationPrompt(int actionCount)
{
// TODO: 显示 "AI 建议执行 N 个操作,是否确认?" 确认栏
Debug.Log($"[AIChat] 等待用户确认 {actionCount} 个操作");
}
/// 清空聊天记录
public void ClearHistory()
{
Messages.Clear();
// TODO: 清空 UI 消息列表
}
}
}