- Notifications
You must be signed in to change notification settings - Fork536
一个基于Entity-Component模式的灵活、通用、可扩展的轻量战斗(技能)框架,配置可选使用ScriptableObject或是Excel表格. A flexible, generic, easy to extend, lightweight combat (skills) framework based on Entity-Component pattern. Configuration can choose to use ScriptableObject or Excel tables.
License
m969/EGamePlay
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
1、3.0版本技能配置数据结构没有变动,主要是运行时的业务代码大重构
2、引入了EcsNode框架 [https://github.com/m969/EcsNode] ,引入System概念,基于EcsNode的 实体-组件-系统 模式重构了运行时代码,将逻辑和数据分离,将业务逻辑和视图逻辑分离
3、去掉了回合制demo,仅保留Rpg demo示例
- 暗黑之地https://www.taptap.cn/app/227372 一个人开发,用EGP重写了整个战斗后重新上线
- 0、如何实现一个灵活、通用的战斗(技能)系统——序章
- 1、如何实现一个灵活、通用的战斗(技能)系统——数值系统
- 2、如何实现一个灵活、通用的战斗(技能)系统——数值系统(升级版)
- 3、如何实现一个灵活、通用的战斗(技能)系统——战斗行动机制
- 4、如何实现一个灵活、通用的战斗(技能)系统——战斗实体
- 5、如何实现一个灵活、通用的战斗(技能)系统——能力Ability
- 6、如何实现一个灵活、通用的战斗(技能)系统——Status状态效果
- 7、如何实现一个灵活、通用的战斗(技能)系统——Skill技能
- 8、如何实现一个灵活、通用的战斗(技能)系统——技能效果
- 9、如何实现一个灵活、通用的战斗(技能)系统——Entity-Component模式
- rpg demo,运行RpgExample Scene场景
- 技能调试编辑,运行ExecutionLinkScene场景
- 首先在AbilityConfig.xlsx表里添加一个技能,给定技能id,配置参数
- 在Project面板右键选择
能力/能力配置创建对应id的技能配置,配置效果 - 在Project面板右键选择
能力/Execution创建对应id的技能执行体,配置片段表现 - 最后就是运行时将技能挂载到CombatEntity上,再通过施法组件SpellComponent释放技能即可
- DOTween Pro (简单易用强大的动画插件)
- Odin Inspector (编辑器扩展、工作流改善)
- Animancer Pro (基于Playable的简单强大的Animation解决方案)
如果要将EGamePlay移植到自己的Unity工程里,首先要确保Odin Inspector插件已经在工程中,并加上UNITY条件编译,最后将以下目录复制过去即可:
- /Assets/Gizmos
- /Assets/Game.Model
- /Assets/Game.System
- /Assets/Game.ThirdParty
- /Assets/Unity.EditorScripts/Editor
- /Assets/Unity.Scripts/UnityMono/EGamePlay
- /Assets/Plugins/Editor/npoi
- /Excel
- 目前还不是完美接入,接入过程中会有冲突或者缺失,需要按需处理
- 把 /Assets/Unity.EditorScripts/Editor 移到ET.Editor程序集下
- 把 /Assets/Unity.Scripts/UnityMono/EGamePlay 移到ET.Loader程序集下
- 把 /Assets/Game.Model 里的业务代码移到Model程序集下
- 把 /Assets/Game.Model 里的视图代码移到ModelView程序集下
- 把 /Assets/Game.System 里的业务代码移到Hotfix程序集下
- 把 /Assets/Game.System 里的视图代码移到HotfixView程序集下
- 把 /Assets/Game.ThirdParty 移到ThirdParty程序集下
- 视图代码看文件夹,包含View或Unity字符的就是视图代码(比如Game.MapView,Game.UnitySystem),其余的就是纯业务代码
- 最后要添加条件编译EGAMEPLAY_ET
- ETHelper文件夹里是老版本的ET代码,会和ET框架的代码有冲突,可以整个删掉,改成用原ET框架的代码,配置表流程也需要改成原ET框架的流程
- 目前还不是完美接入,接入过程中会有冲突或者缺失,需要按需处理
- rpg demo,运行RpgExample Scene场景
- 回合制demo,运行TurnBaseExample Scene场景(在2.0和1.0分支)
- 技能调试编辑,运行ExecutionLinkScene场景
- 可使用菜单栏:
Assets/Create/能力/能力配置创建能力效果配置
- 可使用菜单栏:
Tools/EGamePlay/SkillEditorWindow打开SkillEditorWindow界面
对战斗感兴趣的同学可以进群一起探讨更合适、高效的战斗框架实现
对EGamePlay有任何疑问或建议可以进群反馈,或是提在Discussions
- https://github.com/KrazyL/SkillSystem-3 (Dota2 alike Skill System Implementation for KnightPhone)
- https://github.com/weichx/AbilitySystem
- https://github.com/dongweiPeng/SkillSystem (丰富的接口可便于使用扩展 完整的技能效果流程【如流程图】 配套的技能管理器 自定义的技能数据表)
- https://github.com/sjai013/UnityGameplayAbilitySystem (The approach for this is taken from that used by Unreal's Gameplay Ability System, but implemented in Unity using the Data-Oriented Technology Stack (DOTS) where possible.)
- https://github.com/dx50075/SkillSystem (skill system for unity , 思路http://blog.csdn.net/qq18052887/article/details/50358463技能描述文件如下 skill(1000) //技能1 { FaceToTarget(0) PlayAnimation(1,Skill_1) Bullet(1.3,Bullet,7) PlayEffect(0,Explode8,3) })
About
一个基于Entity-Component模式的灵活、通用、可扩展的轻量战斗(技能)框架,配置可选使用ScriptableObject或是Excel表格. A flexible, generic, easy to extend, lightweight combat (skills) framework based on Entity-Component pattern. Configuration can choose to use ScriptableObject or Excel tables.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Contributors2
Uh oh!
There was an error while loading.Please reload this page.






