🎮 Unity 小镇模拟器模块
本模块是 AI 小镇项目的 Unity 扩展部分,将 AI 角色、地理位置、交互系统可视化为一个可探索的虚拟小镇。玩家可通过键鼠控制角色在小镇中漫游、观察或与其他 AI 角色进行“非直接控制式”交互。
Michaeljiekexuan/ai_town_unity_extend
🧭 功能亮点
🗺️ 地图系统
- 小镇地图基于 Unity 场景搭建,包含多个地点(如咖啡店、公园、电影院、家等)
- 所有场景物体均已接入 NavMesh,支持自动寻路
- 每个 AI 角色可以自主决策前往目标位置(根据其日程与目标)
👣 AI 自主行动
- 每个角色根据其 JSON 中的
daily_routine自动行动 - 后端每分钟通过套接字(socket)推送角色当前状态(位置、情绪、目标等)
- Unity 客户端根据角色 JSON 状态自动调度导航行为(使用 NavMeshAgent)
🧍 玩家控制与观察
- 玩家可控制一个角色在小镇中移动(WASD 控制)
- 若玩家靠近某个 AI 角色,自动弹出 状态观察弹窗
💬 弹窗交互展示
- 弹窗实时展示该 AI 的:
- 当前状态(情绪、位置、目标等)
- 最近行动(由后端
current_thought字段生成) - 是否正在执行某项任务(如打工、写作、采访等)
📡 后端通信机制
Unity 通过 Socket 套接字连接 后端服务器,实时接收角色状态更新 JSON。
- 接收频率:每分钟一次(可配置)
- JSON 示例:
{
"name": "emily",
"location": "咖啡店",
"emotion": 4,
"physical": 6,
"current_thought": "准备采访咖啡师,完成任务目标",
"daily_routine": {
"09:00": "前往咖啡店",
"10:00": "采访咖啡师",
"11:00": "记录采访内容"
}
}