项目Github下载)
Posted Sugarzo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目Github下载)相关的知识,希望对你有一定的参考价值。
目录
前言:
在自己做的比赛项目中,在初期的游戏系统部分完成之后,剩下的内容就是搭建游戏逻辑了。特别是在剧情解密游戏中,搭建过程就是跟着策划流程文档拼图游戏,其中工作量还蛮重复性的。之前有些过几篇关于设计模式和框架的文章,其实目标也是将一些可复用的逻辑抽象出来使用,优化制作管线和提高效率。因此便想到了做一个可视化的节点界面工具出来,方便在长期项目中策划同学也能参与进来编写游戏逻辑,减轻程序方面的负担。
在设计的过程中有很多的考虑点,最初自己对比了一些成熟的可视化节点插件插件bolt,playerMaker等,一开始是想在这些插件上做节点拓展,封装一些自己写的逻辑上去,但发现这些插件中内容很多,自己想要的东西比较轻量级,并且这些插件对于节点和Inspector窗口也不是很方便拓展(自定义属性和odin对接)
在Unity 2021默认的版本内置中,其实已经有了一个节点绘制系统GraphView,其中Visual Scripting和Shader Graph两个节点窗口的就是它的运用了,所以最终自己决定使用了GraphView配合UIbuilder实现了一个事件节点编辑器,将以前的事件系统包装了进来,部分游戏逻辑变成了可视化节点操作。
在设计时也有各种权衡,例如在Bolt中,一个节点前后端口不仅代表流向,也带有这个节点运行时需要的数据,在自己实现的系统中,简化了节点构成,将数据全部放入Inspector中,节点的前后端口只有流向的意义(实际上GraphView是Editor部分在游戏运行时是不生效的)
最终项目运用效果展示:
整个系统还是花了蛮多时间的,中间要寻找各种教程参考(国内教程是真的少),自己思考总结结合以前的框架等。最终写完在实际游戏比赛中运用,确实极大的提高了程序间的构成成本的搭建游戏逻辑效率。系统中涉及的点也很多,因此后续会慢慢写出几个章节分别介绍系统各个模块的实现。
项目下载Github
链接:https://github.com/sugarzo/Unity_GraphView_EventBDTree
具体的使用手册放在github的readme中
后续章节计划:
Runtime 事件节点实时运行部分
该章节会讲述游戏实际运行时,这个行为树的事件系统是怎么执行的,其中的节点的数据结构,实际上和自己之前一篇文章内容思想很类似。[Unity] 状态机事件流程框架 (一)(C#事件系统,Trigger与Action)_Sugarzo的博客-CSDN博客_c# 事件系统
当然后续也做了一些优化,框架中一个涉及四个类型的节点:触发器节点、事件节点、条件节点、序列节点,会介绍一下其中脚本的逻辑。
上面的展示图中其实可以看出来,其实所有的节点都是继承自MonoBehaviour,作为一个component附加在游戏物品上,这自然不是理论上的最高效率。当然这里设计有几个权衡,一是该框架的数据都是由Unity自带的Inspector绘制,没有提供节点的数据端口,因此需要节点的数据信息在UnityEngine.Object的派生类里。
UnityEngine.Object其实还可以选择使用ScriptableObject,效率自然更高,但对比Monobaheviour少了个生命周期函数。最终权衡之下还是选择了用component作为节点数据。
Editor 编辑器部分 (UIbuilder)
该章节会讲解怎么使用UI Toolkit做出自己想要的节点界面。
GraphView unity的节点绘制系统
该章节会讲解GraphView使用,如何构建节点图。实际上节点图只用来组织上面Runtime部分的数据流向(一个NodeView关联一个Runtime的Component),游戏运行时时不构建节点图,GraphView负责Runtime部分的数据编辑(修改流向),以及如何根据各节点流向反过来构建编辑器下的节点图(有点数据结构图论的思想),然后是一些删除节点,复制节点,创建添加节点菜单的操作实现。
2023/1 更新完结
本系列已更新完结,各章节文章链接:
[Unity] GraphView 可视化节点的事件行为树(一) Runtime Node_Sugarzo的博客-CSDN博客
[Unity] GraphView 可视化节点的事件行为树(二) UI Toolkit介绍,制作事件行为树的UI_Sugarzo的博客-CSDN博客
[Unity] GraphView 可视化节点的事件行为树(三) GraphView介绍_Sugarzo的博客-CSDN博客
从github下载项目出现yes/no的选项,无法下载项目
解决办法:
# 本地执行: ssh-keygen # 将id_rsa_pub文件中公钥拷贝到github上的ssh认证 oodful@:~/Volumes/Term2 08:46:44:9$cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFzxqwRRdBQPtxdIxGUdWi+FbehxMf6YBK/jeYl/ompAWVmWihiqisD5W4rmmQwfHXUCjrOAj654FNZBK/u74Go0kzOA6bZ3XuXRGp6ZsnmtG90IQhmy8YH6OjidV2y7y8Hgah+mYZkR4NpBLJCHIKzKXo87LAejP+o9WQOiWwGJw2V85n2jMyL7IUSM7j9PBVWeihwYuYvunDK1ZOJC5UQcQaN3crfLngyHxOxn2cMk48ZidWoEpoYlK9YGkNpfFGgU2Mt8XHZTsiSieObgyVjt2Fx1KSSqtizOT+c96WNva3sSyvTddJkng+YYGjuR9c6SDOXAVbvY4PYcHrlLBJ goodful@goodfuldeMacBook-Air.local
以上是关于项目Github下载)的主要内容,如果未能解决你的问题,请参考以下文章