基于Unigine应用程序的典型结构
无论您的应用程序是什么类型,其结构十分重要因为在此步骤中所做的决定将会影响到整个项目。关于这个问题我们收到了许多的咨询,因为我们决定作出一些指引。
请注意本文不会考虑到引擎的内部结构,甚至您购买了带源码的版本在万不得已的情况下不要进行修改,否则会破坏引擎的完整性。
若想了解引擎结构,请参看引擎结构。
虽然Unigine能提供众多特点并支持许多硬件,但可能对您而言在创建游戏项目或虚拟现实应用程序时也许这些特征仍显得不足,无法满足您的要求。至少需要您添加应用程序/游戏逻辑,但也许还有其它任务例如添加对不常见硬件的支持。在进行此项工作时,不要将Unigine上的函数进行负责显得十分重要。如果您需要进行扩展,应使用正确的工具。
为了避免函数的双重性,在目标能单独使用Unigine实现的情况下请进行彻底的检查。由于扩展的实施需要的推荐较多,因此需选择正确的扩展工具。
根据使用的接口,Unigine扩展可被分为三种类型:
怎样在接口之间进行选择?有以下规则。当然凡是都有例外,也许这些规则中存在着这样的例外情况,当这样的例外概率十分低值得怀疑。
- 材质系统。在需要一些特殊的渲染方式时可提供定制着色器。但请确定使用即用型Unigine材质是否可以实现同样的效果。
- 解析器。多亏了UnigineScript的语言属性以及Unigine库提供的函数,在系统脚本(应用程序启动及关闭),世界脚本(主要游戏逻辑及状态),AI (状态,简单的决策) GUI中使用脚本。不要低估UnigineScript,其专门用来为开发者提供便利,减轻他们的开发压力;即使是初级开发员也可以使用此工具进行开发。UnigineScript的语言特征和解析器特征的完整列表在UnigineScript一文中进行了列举。
- C++ API。 C++组件应用于与硬件,网络,重实用程序代码,复杂的决策如寻找路径发生交互作用。当然如果您想使用第三方库,那么就使用C++封装器来将这些由库提供的函数导出到UnigineScript中。要避免使用C++来写游戏逻辑因为这样极不便利,容易发生错误且对平台有依赖性。
举个小型实例对上述指南进行阐明。如果你打算为某个指定的控制器创建一个电子游戏且此控制器还自带一个游戏:魔法棒。此时如果您仍想使用第三方AI库来为玩家的敌人注入生命力。那么应按照下列步骤进行操作:
- 使用C++实施控制器支持,将所需函数导出到UnigineScript中。
- 将所需AI 库函数导出到UnigineScript中。
- 在UnigineScript中编写主要逻辑。游戏状态,玩家状态及对方状态将被保存在脚本中并进行更新。
最新更新:
2019-12-25
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)