其他
为非程序员打造的Unity游戏框架:Playground Project
本文将由Unity的Technical Evangelist,Ciro Continisio为大家分享针对非程序员而打造的游戏框架“Playground Project”的诞生过程。“Playground Project”旨在易于使用且方便设置,但不限制开发人员的游戏创意,最初是针对一群11到16岁之间的小朋友制作的。
该框架已开源发布至GitHub,点击[阅读原文]即可获取下载地址。
下面由Ciro Continisio为大家介绍“Playground Project”的由来。
开始创建框架时,我心里有几个目标。首先,我想告诉孩子们制作游戏是很有趣的事情。想给他们一个完整的游戏开发体验,但同时不让技术问题难倒他们。最重要的是,不想限制他们的创造力。
另一个关键目标就是框架必须尽可能的阻止出错,并正确引导孩子。因此我想出了一个小框架并围绕着几个基本原则,每次做决定之前必须将其考虑进去:
一套易于使用及组合的单任务组件
非常简单的场景设置
基于物理的游戏玩法(好玩!)
简单的2D(孩子们可以从网上导入其他图形资源)
自定义检视面板来检测设置中的错误
提前做好用于显示生命值和分数的UI
更详细的来说,这些组件大多都是用于执行单个任务的简单脚本,因此他们可以被混合使用以产生更精致的游戏效果。这些组件的检视面板都在编辑器代码的帮助下进行了深度定制,并且提供了大量的设置指引。例如,MoveWithArrows组件在检视面板底部显示了一些小提示,并且如果不勾选Orient to direction则会隐藏Look axis 。
框架的核心就是条件,基本上就是if语句组成的组件。他们用于检查特定条件,如果通过验证就开始执行一些命令。现在可用的条件脚本分别是Area Conditions (基本上用于触发,输入,退出和停留), Collision Condition(碰撞时攻击),和一个用于捕捉输入的可配置 Key Condition。未来可能添加更多。
在第一次迭代中,我将UnityEvent下的动作进行分组。尽管它功能强大,但检视面板中的UnityEvent模块太过庞大且复杂,很难设置,因为它显示了目标对象所有的公共属性与方法。
遵循这种简化规则,ConditionKeyPress检视面板的Gameplay Actions 模块如下图所示:
最后,一些脚本被分配在Attributes一组,他们只是对象为数不多的属性,效率很高。例如,为游戏对象添加Resource属性就会将该对象变成可拾取和可堆叠的,会在UI上显示该对象的图标或数量,后面通过GameplayAction脚本ConsumeResource来消耗。
Defender这个游戏用于展示如何射击物体(激光发射器)或者随机生成(小行星),也是一个基于生命值的游戏,玩家的生命值脚本不在角色的游戏对象上,而是绑定在游戏环境上。
Maze游戏用于展示物品收集(这里是硬币),如何设置Area Conditions(环境条件),以及如何使用LoadLevelAction加载其它关卡。
我们Evangelism团队已将该框架开源至Github,欢迎大家下载试用。其中包括Wiki文档,详细介绍了如何使用这套框架。点击[阅读原文]即可获取下载地址,如有任何疑问,请访问Unity官方中文社区。
更多Unity官方提供的免费资源请看:
Vision VR/AR 亚洲峰会 5折票价仅剩最后几天。优惠购买从速哦。