# XCSkillEditor_Unity **Repository Path**: gsjengineer/XCSkillEditor_Unity ## Basic Information - **Project Name**: XCSkillEditor_Unity - **Description**: XCSkillEditor 小草技能编辑器 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-12-08 - **Last Updated**: 2025-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XCSkillEditor 小草技能编辑器 基于Flux扩展开发的UnityAct技能编辑器, 集成Mirror支持局域网联机,实现只通过配置就可以制作技能 主要功能:技能编辑器,战斗框架,联网同步 附加功能:对象池,计时器,敌人AI,编辑器收藏夹 Unity版本建议2020.3以上 编译报错是dll文件丢失,目前已修复 目前项目的代码和 Mirror高度绑定,耦合性比较高,不推荐移植,使用单机版本开发会更容易点 单机版本 -> [XCSkillEditor_Local](https://github.com/smartgrass/XCSkillEditor_Local) ## 声明 项目内的美术素材仅供演示使用, 禁止用于商业相关. *** ## 思路介绍 1.编辑器保存技能:将技能序列化,技能分解为动画,位移,生成对象和子技能等事件,提取关键序列化信息,保存在预制体中。 2.技能释放原理:根据技能id读取技能事件序列,然后根据事件的start帧触发事件,直到所有事件完成,技能便执行结束。不同类型的技能事件在各自的类中实现。 3.同步思路:帧同步,区分本地与联网行为, 将联网行为通过Rpc模式通知客户端,客户端再从本地执行表示效果。 4.位置同步:为了避免闪现卡顿,使用位移偏移量计算位置, 并最终与实际位置做插值做平滑。 5.技能同步:技能释放前,将玩家位置和方向记录进技能信息,一并发送给服务端,再由服务端转发给客户端,客户端本地处理表现。 ## 展示 ### 本github版本只包含技能编辑器核心部分,和视频的效果demo不同 在SkillEditor.scene只保留了几个示例技能 效果demo展示: https://www.bilibili.com/video/BV18m4y1675a pc试玩demo: https://share.weiyun.com/ik4O15hD) ## 插件引用 [Mirror](https://github.com/MirrorNetworking/Mirror): 网络框架 ,优点是不用写服务器代码, 缺点只适用于小型项目,如果只想单机逻辑改起来有难度。 [NaughtyAttributes](https://github.com/dbrizov/NaughtyAttributes): 是一个轻量级的编辑器扩展,强烈推荐,也推荐它的作者的开源项目 [XiaoCaoTool](https://github.com/smartgrass/XiaoCaoTools): 受NaughtyAttributes启发,制作的XiaoCaoWindow编辑器扩展,快速搭建编辑器窗口,也包含部分开发小工具 其他引用: [Flux](https://assetstore.unity.com/packages/tools/animation/flux-18440) ,[QianMo/X-PostProcessing-Library](https://github.com/QianMo/X-PostProcessing-Library) ,Luban,DoTween 其他优秀框架推荐:YooAseet ,[猫刀刀的MDDSkillEngine](https://gitee.com/mtdmt/MDDSkillEngine?_from=gitee_search) ,[烟雨的et7](https://github.com/wqaetly/ET/tree/et7_fgui_yooasset_luban_huatuo) ,[MotionFramework](https://github.com/gmhevinci/MotionFramework) # 开始使用 ## 1.打开 打开SkillEditor.scene 然后打开Flux:菜单Window/Flux/Open Editor 在Flux窗口选择一个技能就可以编辑了 编辑完成,就可以保存了. 保存:右上角的保存按钮 或者 在Scene里选中Sequence 右键/Xiaocao/保存选中Seq *** # 默认设定 ## 1.Sequence配置: (1)一个角色有两个Animator, 是为了防止Flux编辑时乱连, 在Editor场景中使用editor (2)技能id和额外的配置 ## 2.技能特效都得是预制体,并且放于Resources目录下 一般放于Resources/SkillEffet下,当然你也可以修改成别的加载方式 加载代码可以看RunTimePoolManager的LoadResPoolObj() ## 3.技能坐标系设定 分玩家坐标系和世界坐标 玩家坐标系(默认): 生成物体时,以玩家的相对坐标系生成物体 世界坐标: 技能触发时刻的玩家坐标系,不受之后玩家移动的影响 对于玩家坐标系的物体,需要放在PlayerConstraint下 更改坐标系: 菜单Window/Flux/Open Inspector 然后选中一个Timeline ## 4.常用的Aseet位置 Resources/Charecter 角色 Resources/ResUsing 配置 其中SkiillKeyCodeSo是配置技能按键和图标和cd,没配置按键的技能则为被动技能 ## 5.编辑器菜单功能 技能的excel配置(Luban): 菜单Tools/配置 使用的Luban,所以应该需要安装.net 4.0 收藏夹:菜单Tools/XiaoCao/收藏夹 动画预览窗口:菜单Tools/XiaoCao/动画预览窗口