从0到1开发goa/goap自定义Action:以ChopTreeAction为例的完整教程 发布时间:2026/8/7 15:52:40 从0到1开发goa/goap自定义Action以ChopTreeAction为例的完整教程【免费下载链接】goapGoal Oriented Action Planning AI in Unity项目地址: https://gitcode.com/gh_mirrors/goa/goapgoa/goap是一个基于Unity的Goal Oriented Action PlanningGOAPAI系统它允许开发者为游戏角色创建智能决策逻辑。本文将以ChopTreeAction为例详细介绍如何从零开始开发自定义Action帮助新手快速掌握GOAP系统的核心开发技能。什么是GOAP ActionGOAP Action是GOAP系统的核心组成部分它定义了智能体可以执行的具体行为。每个Action包含前置条件、执行效果、目标对象和执行逻辑等关键要素。在goa/goap项目中所有Action都继承自抽象基类GoapAction该类位于Assets/Standard Assets/Scripts/AI/GOAP/GoapAction.cs。GoapAction基类定义了以下必须实现的抽象方法reset()重置Action状态isDone()检查Action是否完成checkProceduralPrecondition()检查过程性前置条件perform()执行Action逻辑requiresInRange()是否需要靠近目标对象开发ChopTreeAction的完整步骤1. 创建Action类并继承GoapAction首先创建一个名为ChopTreeAction的类并继承GoapAction。在goa/goap项目中所有自定义Action都存放在Assets/Standard Assets/Scripts/GameData/Actions/目录下。public class ChopTreeAction : GoapAction { // 实现抽象方法和自定义逻辑 }2. 定义Action的状态变量在ChopTreeAction中我们需要定义一些状态变量来跟踪砍树过程private bool chopped false; private TreeComponent targetTree; // 目标树组件 private float startTime 0; public float workDuration 2; // 砍树所需时间秒3. 实现构造函数和前置条件/效果在构造函数中我们需要设置Action的前置条件和执行效果。对于砍树动作前置条件是拥有工具且没有木材执行效果是获得木材public ChopTreeAction() { addPrecondition(hasTool, true); // 需要工具 addPrecondition(hasLogs, false); // 没有木材 addEffect(hasLogs, true); // 获得木材 }4. 实现reset()方法reset()方法用于重置Action的状态在每次Action被规划时都会调用public override void reset() { chopped false; targetTree null; startTime 0; }5. 实现isDone()方法isDone()方法检查Action是否完成这里我们通过chopped变量来判断public override bool isDone() { return chopped; }6. 实现requiresInRange()方法砍树动作需要靠近树木因此requiresInRange()应返回truepublic override bool requiresInRange() { return true; // 需要靠近树木 }7. 实现checkProceduralPrecondition()方法该方法用于查找合适的目标对象这里是树木。我们需要找到距离智能体最近的树木public override bool checkProceduralPrecondition(GameObject agent) { // 查找所有树木组件 TreeComponent[] trees (TreeComponent[])UnityEngine.GameObject.FindObjectsOfType(typeof(TreeComponent)); TreeComponent closest null; float closestDist 0; foreach (TreeComponent tree in trees) { if (closest null) { closest tree; closestDist (tree.gameObject.transform.position - agent.transform.position).magnitude; } else { float dist (tree.gameObject.transform.position - agent.transform.position).magnitude; if (dist closestDist) { closest tree; closestDist dist; } } } if (closest null) return false; targetTree closest; target targetTree.gameObject; return closest ! null; }8. 实现perform()方法perform()方法包含Action的核心执行逻辑。在这里我们处理砍树过程、获取木材以及工具损耗public override bool perform(GameObject agent) { if (startTime 0) startTime Time.time; if (Time.time - startTime workDuration) { // 完成砍树获取木材 BackpackComponent backpack (BackpackComponent)agent.GetComponent(typeof(BackpackComponent)); backpack.numLogs 1; chopped true; // 使用工具并检查工具是否损坏 ToolComponent tool backpack.tool.GetComponent(typeof(ToolComponent)) as ToolComponent; tool.use(0.34f); if (tool.destroyed()) { Destroy(backpack.tool); backpack.tool null; } } return true; }将自定义Action添加到智能体要让智能体能够使用新创建的ChopTreeAction需要将其添加到相应的智能体组件中。以Logger伐木工人为例在Assets/Standard Assets/Scripts/GameData/Labourers/Logger.cs中ChopTreeAction被用于实现伐木目标。自定义Action开发最佳实践保持单一职责每个Action应只完成一个具体任务如砍树、采矿、锻造等合理设置前置条件和效果确保条件和效果的逻辑一致性这直接影响GOAP规划器的决策优化目标选择在checkProceduralPrecondition()中高效查找目标避免性能问题处理资源消耗如工具损耗、时间成本等使AI行为更真实状态重置在reset()方法中确保所有状态变量都被正确重置总结通过本文的教程你已经了解了如何基于goa/goap项目开发自定义Action。从继承GoapAction基类到实现各种抽象方法再到定义具体的执行逻辑每个步骤都至关重要。掌握Action开发是构建复杂GOAP AI系统的基础希望这个以ChopTreeAction为例的教程能帮助你快速上手goa/goap的开发。现在你可以尝试开发其他类型的Action如采矿MineOreAction、锻造工具ForgeToolAction等这些Action都可以在Assets/Standard Assets/Scripts/GameData/Actions/目录下找到参考实现。【免费下载链接】goapGoal Oriented Action Planning AI in Unity项目地址: https://gitcode.com/gh_mirrors/goa/goap创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考 相关新闻 DeepSeek V4长上下文推理与NVIDIA Blackwell架构:软硬协同下的AI部署实战 1. 项目概述:当顶尖AI模型遇上顶级硬件架构 最近圈子里的讨论热度,几乎被两个名字承包了:DeepSeek V4和NVIDIA Blackwell。这感觉就像当年“Transformer”遇上“V100”,一个定义了算法的新范式,一个提供了承载新范式的… 2026/8/7 15:52:40 Mermaid Live Editor 完全指南:如何在5分钟内创建专业图表 Mermaid Live Editor 完全指南:如何在5分钟内创建专业图表 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-ed… 2026/8/7 15:52:40 绝地求生压枪宏终极指南:用罗技鼠标实现零后坐力射击 绝地求生压枪宏终极指南:用罗技鼠标实现零后坐力射击 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 你是否在《绝地求生》中总是因为… 2026/8/7 15:52:40 最新新闻 giget未来路线图:即将发布的5个令人期待的新功能 giget未来路线图:即将发布的5个令人期待的新功能 【免费下载链接】giget ✨ Download templates and git repositories with pleasure! 项目地址: https://gitcode.com/gh_mirrors/gi/giget giget作为一款高效的模板和git仓库下载工具,凭借无需依… 2026/8/7 16:57:42 Android 2038年问题:Unix时间戳溢出与系统时间限制的深度解析 1. 一个被忽视的“未来”问题:当你的Android设备无法穿越2038 最近在调试一个需要处理长期定时任务的Android应用时,我遇到了一个看似遥远却非常棘手的问题:尝试将系统时间设置到2038年1月19日之后,系统要么直接拒绝,要… 2026/8/7 16:57:42 Minecraft服务器管理革命:EssentialsX插件3大核心优势与5步实战指南 Minecraft服务器管理革命:EssentialsX插件3大核心优势与5步实战指南 【免费下载链接】Essentials The modern Essentials suite for Spigot and Paper. 项目地址: https://gitcode.com/GitHub_Trending/es/Essentials 你是否曾经为管理Minecraft服务器而烦恼… 2026/8/7 16:57:42 如何高效下载M3U8视频:5个实用技巧与完整解决方案 如何高效下载M3U8视频:5个实用技巧与完整解决方案 【免费下载链接】m3u8-downloader 一个M3U8 视频下载(M3U8 downloader)工具。跨平台: 提供windows、linux、mac三大平台可执行文件,方便直接使用。 项目地址: https://gitcode.com/gh_mirrors/m3u8d/m3u8-downlo… 2026/8/7 16:57:42 西门子S7协议安全剖析:从通信原理到攻防实战 1. 从“黑盒”到“白盒”:为什么工控协议安全不再是“隔岸观火”几年前,提到工业控制系统安全,很多人的第一反应是“物理隔离”。总觉得那些控制着发电厂、化工厂、生产线的PLC(可编程逻辑控制器)和DCS(分布… 2026/8/7 16:57:42 Windows-Auto-Night-Mode性能优化:提升主题切换效率的技巧 Windows-Auto-Night-Mode性能优化:提升主题切换效率的技巧 Windows-Auto-Night-Mode作为一款自动化主题切换工具,其性能表现直接影响用户体验。本文将从定时器优化、异步操作调整、资源占用控制三个维度,提供实用的性能优化技巧,… 2026/8/7 16:52:42 日新闻 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属… 2026/8/7 0:01:21 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制。其目标是在多任务环境中实现公平性、高效性、响应性与吞吐量的平衡。常见的调度算法包括: 先来先服务(FCFS)… 2026/8/7 0:01:21 Cisco IOS XE 曝多个高危安全漏洞,企业网络设备面临远程攻击风险 最近思科发布了一则让不少网安从业者捏把汗的安全公告。旗下广泛部署的 Cisco IOS XE 软件被挖出多个严重漏洞,其中最狠的一个拿到了 CVSS 9.8 的满分级评分,几乎触顶。对于依赖思科设备支撑核心业务的企业来说,这绝不是可以拖到下季度再处理… 2026/8/7 0:01:21 周新闻 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/6 10:11:44 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/7 3:47:00 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/7 3:47:06 月新闻 【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/7 3:46:34 AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/7 3:46:40 AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/7 15:51:54
DeepSeek V4长上下文推理与NVIDIA Blackwell架构:软硬协同下的AI部署实战 1. 项目概述:当顶尖AI模型遇上顶级硬件架构 最近圈子里的讨论热度,几乎被两个名字承包了:DeepSeek V4和NVIDIA Blackwell。这感觉就像当年“Transformer”遇上“V100”,一个定义了算法的新范式,一个提供了承载新范式的… 2026/8/7 15:52:40
Mermaid Live Editor 完全指南:如何在5分钟内创建专业图表 Mermaid Live Editor 完全指南:如何在5分钟内创建专业图表 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-ed… 2026/8/7 15:52:40
绝地求生压枪宏终极指南:用罗技鼠标实现零后坐力射击 绝地求生压枪宏终极指南:用罗技鼠标实现零后坐力射击 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 你是否在《绝地求生》中总是因为… 2026/8/7 15:52:40
giget未来路线图:即将发布的5个令人期待的新功能 giget未来路线图:即将发布的5个令人期待的新功能 【免费下载链接】giget ✨ Download templates and git repositories with pleasure! 项目地址: https://gitcode.com/gh_mirrors/gi/giget giget作为一款高效的模板和git仓库下载工具,凭借无需依… 2026/8/7 16:57:42
Android 2038年问题:Unix时间戳溢出与系统时间限制的深度解析 1. 一个被忽视的“未来”问题:当你的Android设备无法穿越2038 最近在调试一个需要处理长期定时任务的Android应用时,我遇到了一个看似遥远却非常棘手的问题:尝试将系统时间设置到2038年1月19日之后,系统要么直接拒绝,要… 2026/8/7 16:57:42
Minecraft服务器管理革命:EssentialsX插件3大核心优势与5步实战指南 Minecraft服务器管理革命:EssentialsX插件3大核心优势与5步实战指南 【免费下载链接】Essentials The modern Essentials suite for Spigot and Paper. 项目地址: https://gitcode.com/GitHub_Trending/es/Essentials 你是否曾经为管理Minecraft服务器而烦恼… 2026/8/7 16:57:42
如何高效下载M3U8视频:5个实用技巧与完整解决方案 如何高效下载M3U8视频:5个实用技巧与完整解决方案 【免费下载链接】m3u8-downloader 一个M3U8 视频下载(M3U8 downloader)工具。跨平台: 提供windows、linux、mac三大平台可执行文件,方便直接使用。 项目地址: https://gitcode.com/gh_mirrors/m3u8d/m3u8-downlo… 2026/8/7 16:57:42
西门子S7协议安全剖析:从通信原理到攻防实战 1. 从“黑盒”到“白盒”:为什么工控协议安全不再是“隔岸观火”几年前,提到工业控制系统安全,很多人的第一反应是“物理隔离”。总觉得那些控制着发电厂、化工厂、生产线的PLC(可编程逻辑控制器)和DCS(分布… 2026/8/7 16:57:42
Windows-Auto-Night-Mode性能优化:提升主题切换效率的技巧 Windows-Auto-Night-Mode性能优化:提升主题切换效率的技巧 Windows-Auto-Night-Mode作为一款自动化主题切换工具,其性能表现直接影响用户体验。本文将从定时器优化、异步操作调整、资源占用控制三个维度,提供实用的性能优化技巧,… 2026/8/7 16:52:42
“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求 “Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属… 2026/8/7 0:01:21
调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制 调度算法(Scheduling Algorithm)是操作系统内核中用于决定哪个进程或线程在何时获得CPU资源执行的核心机制。其目标是在多任务环境中实现公平性、高效性、响应性与吞吐量的平衡。常见的调度算法包括: 先来先服务(FCFS)… 2026/8/7 0:01:21
Cisco IOS XE 曝多个高危安全漏洞,企业网络设备面临远程攻击风险 最近思科发布了一则让不少网安从业者捏把汗的安全公告。旗下广泛部署的 Cisco IOS XE 软件被挖出多个严重漏洞,其中最狠的一个拿到了 CVSS 9.8 的满分级评分,几乎触顶。对于依赖思科设备支撑核心业务的企业来说,这绝不是可以拖到下季度再处理… 2026/8/7 0:01:21
ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am… 2026/8/6 10:11:44
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架… 2026/8/7 3:47:00
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,… 2026/8/7 3:47:06
【YOLOv11模型改进系列】08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 08 数据增强的终极形态:用AutoAugment让YOLOv11自己学会“什么数据最有用” 老伙计,咖啡准备好了吗?上篇我们聊了Mosaic+MixUp的“混乱美学”,你肯定已经体会到,手动调数据增强策略就像给模型当保姆——每换一个数据集就要重新试一遍参数。 上周有个做工业质检的朋友找我… 2026/8/7 3:46:34
AI 智能电动窗帘电机高集成、低功耗 MOSFET 精准选型方案 随着 AIoT 与智能家居深度融合,智能电动窗帘电机对功率 MOSFET 提出新要求:微型化、高效率、逻辑电平驱动及静音运行。微碧半导体(VBsemi)基于先进的 Trench 和 SGT 工艺,为您提供覆盖 H桥驱动、电源管理及电机控制的完… 2026/8/7 3:46:40
AI 智能电动窗帘电机智能功率 MOSFET 完整选型方案 随着 AI 技术在智能家居中的普及(如语音控制、光线感应、场景联动),电动窗帘电机对功率 MOSFET 提出更高要求:高效率、低噪音、高集成度。微碧半导体(VBsemi)基于 SGT 及 Trench 工艺,为您提供覆… 2026/8/7 15:51:54