# XHFrameworkSkill
**Repository Path**: xframework886/xframework-skill
## Basic Information
- **Project Name**: XHFrameworkSkill
- **Description**: 技能模块,包括节点技能编辑器
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 15
- **Forks**: 10
- **Created**: 2026-01-20
- **Last Updated**: 2026-02-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 🎯 大家感兴趣的话可以进入QQ群一起交流学习!
## 🎯 QQ交流群:621790749
# XHFrameworkSkill - Unity技能框架与编辑器
## 📖 目录
[项目简介](#项目简介) | [为什么做这个技能模块](#为什么做这个技能模块) | [框架概述](#框架概述) | [技能编辑器详解](#技能编辑器详解) | [标签编辑器](#标签编辑器) | [技能示例分析](#技能示例分析) | [数值系统](#数值系统) | [仓库内容](#仓库内容) | [交流学习](#交流学习)
---
## 🎯 项目简介
本组织还包含其他仓库:
- **技能框架**:基于GAS模式的技能系统
- **Unity客户端框架**:基础游戏框架
- **资源服务器**:资源管理和分发
- **工具集**:开发辅助工具
- **常用Package包**:Unity常用插件和库
---
## ❓ 为什么做这个技能模块

如上图,这是我在上家公司做的技能模块和树形技能编辑器。
### 传统方式的痛点
以往技能配置通常通过表格实现,存在以下问题:
- 各个表之间跳转复杂,不够直观
- 配置修改麻烦,难以维护
### 传统事件驱动的问题
在传统树形结构编辑器中:
- **技能/子弹/Buff/放置物**:都通过触发器驱动
- **核心思想**:在**何时**触发**什么效果**(Trigger + Effect)
- **事件系统**:在各个模块添加大量触发事件(技能内事件和全局事件)
- **局限性**:依赖于树形结构,一对多的思想做复杂技能很困难,需要添加很多特殊机制
### GAS模式的启发
后来了解了虚幻引擎的GAS模式:
- **标签系统**:避免了过多的事件情况
- **节点图**:天然的图形化结构
- **灵活性**:多对多的连接方式更加灵活
但是虚幻GAS也有不足:制作一个技能需要配置很多资产,在不同资产间跳转。
### 我们的解决方案
因此,我开发了这款技能编辑器,特点是:
- **一体化设计**:配置一个技能只有一个节点图
- **全面覆盖**:技能产生的所有效果、子弹、Buff等都可以在一个图中表现
- **直观可视**:所有逻辑关系一目了然
> 不了解虚幻GAS?可以参考[中文文档](https://github.com/BillEliot/GASDocumentation_Chinese?tab=readme-ov-file#concepts-gt)
---
## 🏗️ 框架概述
框架模块遵循GAS的核心思想:
- **AbilitySystemComponent**:能力系统组件
- **Attribute**:属性系统
- **Ability**:技能能力
- **Effect**:效果系统
- **Cue**:表现系统
了解了技能编辑器,也就基本了解了整个技能框架。
---
## 🎨 技能编辑器详解
### 编辑器概览

### 1. 技能资源栏

- 左侧区域显示技能文件和文件夹
- 支持常规操作:新建、剪切、粘贴、重命名等
### 2. 技能编辑区域

- 中间主编辑区
- 右键可唤出节点选择菜单
### 3. 节点类型

目前有五种节点类型:
#### 技能节点
- 包含ID和标签配置
- 支持消耗、动画、CD等配置
- 提供事件激活输出点
#### 效果节点

- 分为瞬时、持续、永久三种类型
- 主要用于属性和状态的修改
#### 任务节点

- 用于触发各种行为
- 动画节点是一个Timeline编辑器,方便策划和程序编辑
#### 条件节点

- 对情况进行分析
- 根据条件输出不同的结果
#### 表现节点

- 处理美术表现:特效、音效、飘字等
### 4. 节点属性面板

- 右侧显示选中节点的属性
- 可配置节点具体参数
### 设计理念
- **高度灵活**:所有节点都可以互相链接
- **复用性强**:所有节点设计为可复用组件
---
## 🏷️ 标签编辑器

这是一个树形结构的标签编辑器,特点包括:
- 直观的树形结构管理
- 支持常用功能:添加标签、剪切、复制、粘贴等
---
## 🎮 技能示例分析
### 5.1 横扫:对前方扇形区域造成伤害

> 注意:由于资源来自上家公司(使用多皮肤换装系统),事件轴动画预览区域显示可能不正确。
#### 配置步骤:
1. **添加技能CD标签**

2. **创建技能文件**

3. **创建技能节点**

- 填写技能ID

- 将CD标签添加到"激活时阻止"
4. **创建消耗节点**

- 连接技能消耗输出点
- 可配置多个消耗项,释放技能前自动检测
5. **创建CD节点**

- 连接技能冷却输出点
- 配置"激活时授予标签"为CD标签
- 支持普通CD和充能CD
6. **创建动画节点**

- 连接技能动画节点
- 可添加轨道,轨道链接效果
- 支持时间线拖拽,逐帧查看
7. **创建技能结束和特效节点**

- 连接动画节点
8. **创建搜索目标节点 → 伤害 → 飘字**

- 节点属性直观易懂
#### 技能流程: 释放技能-》技能tag检测-》技能cd检测-》消耗检测-》释放-》消耗-》cd-》动画-》范围检测-》伤害-》 飘字
### 5.2 流血:攻击到的敌人添加流血Buff

- **最大叠加层数**:3层
- **叠加规则**:刷新时间,周期不重置
- **过期处理**:清理全部堆叠
- **溢出处理**:拒绝新应用
#### 配置要点:
1. Buff节点提供多种输出点:
- 初始效果
- 每周期执行
- 刷新时
- 完成效果
- 全部移除后
- 溢出时
2. 可链接不同节点:特效、范围搜索、伤害等
3. Buff节点拥有五种不同标签(参考虚幻GAS Effect系统)
### 5.3 践踏:对区域内眩晕

.
1. 在标签编辑器添加眩晕标签

。
2. 在Buff节点标签处添加眩晕标签
### 5.4 旋风斩:技能期间对周围伤害

- **实现方式1**:作为Buff实现
- **实现方式2**:作为通用效果实现(推荐)
#### 推荐配置:
- 创建通用效果,类型为永久
- 在节点中勾选"技能结束后取消"
- 技能结束,效果也随之结束
#### 替代方案:
- 使用标签系统
- 在"持续所需标签"内填写技能标签
- 标签移除时,效果自动取消
### 5.5 回血:回复血量

- 简单实现:链接恢复节点即可
### 5.6 火球术:投掷物技能

- **节点类型**:投掷物节点
- **发射来源**:可配置
- **目标来源**:可配置
- **飞行模式**:直线/曲线/偏移/飞越
- **碰撞设置**:穿透等
- **触发点**:碰撞时/完成时/到达目标时
### 5.7 三火球

- 与火球术类似,可共用伤害节点
- 三个火球各自配置偏移属性
### 5.8 神罗天征/万象天引:位移Buff

- **核心机制**:带位移的Buff
- **内置配置**:提供多种位移配置选项
- **可扩展性**:支持自定义位移方式
### 5.9 急速:移速增加Buff

- **简单实现**:在Buff的属性管理器中添加移速属性即可
### 5.10 被动回血:三秒内没有受到伤害自动回血

#### 配置步骤:
1. **创建被动回血的3秒CD标签**
2. **被动激活时添加永久回血Buff**
- Buff的"打断持续标签"中增加CD标签
3. **技能添加受到伤害时事件**
- 接收到事件后触发冷却节点
- 冷却节点自动添加CD标签
- Buff检测到CD标签,自动结束
- 三秒后冷却节点结束,移除CD标签
- 冷却节点结束时效果链接到Buff节点,重新添加Buff
#### 工作原理:
---
## 🔢 数值系统
节点中的数值配置支持四种方式:
1. **具体值**:直接填写固定数值
2. **公式**:使用公式计算数值,支持技能等级等变量
3. **MMC**(Modifier Magnitude Calculation):自定义计算逻辑
4. **上下文**:从外部数据源(如配置表)获取数值
### 应用场景:
- **技能等级参数**:使用公式或MMC处理不同等级的数值差异
- **策划配表**:使用上下文方式从配置表读取数据
- **复杂计算**:使用MMC实现自定义计算逻辑
---
## 📁 仓库内容
本组织还包含以下内容:
1. **技能框架**:基于GAS模式的技能系统
2. **Unity客户端框架**:基础游戏框架
3. **资源服务器**:资源管理和分发
4. **工具集**:开发辅助工具
5. **常用Package包**:Unity常用插件和库
---
## 👥 交流学习
欢迎大家加入QQ群一起交流学习!
**QQ交流群:621790749**
**示例场景在SampleScene里面**记得设置Game视图分辨率1366*768 wasd控制主角,一个技能一个技能去演示
---
本组织还有 XHFramework - Unity 游戏客户端框架:https://gitee.com/xframework886/xframework-client
## 📄 许可证
(请根据实际情况添加许可证信息)
---
## 🚀 快速开始
(请根据实际情况添加使用说明)
---
**最后更新**:请根据实际情况更新日期
**版本**:请根据实际情况填写版本号