Ai小镇unity拓展

154 阅读1分钟

🎮 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": "记录采访内容"
  }
}

局内画面

game.png