我很想知道在Unity3D中创建游戏时的工作流程吗?
它会为您生成很多代码吗?
我的理解是,您在Unity中描述游戏并在后端执行脚本以执行逻辑。有点像您使用Unity来描述人偶,并使用脚本语言作为人偶母版。
我很想知道在Unity3D中创建游戏时的工作流程吗?
它会为您生成很多代码吗?
我的理解是,您在Unity中描述游戏并在后端执行脚本以执行逻辑。有点像您使用Unity来描述人偶,并使用脚本语言作为人偶母版。
Answers:
Unity3D由一个游戏引擎以及一个(基本的)3D编辑器组成。它提供了网格,纹理,着色器,地形,相机,动画,粒子系统,音频样本以及其他在视频游戏中有用的对象。它包括PHYSX(Nvidia拥有的专有物理引擎)和Mono(公共语言运行时的开源实现,又名.NET)。
您使用多少取决于您自己。您可以将所有数据结构表示为Unity对象,在Unity的编辑器中构建世界,打开物理场,并使用最少的脚本让事件顺利进行。另外,您可以关闭物理引擎,通过算法构建世界,并对对象的所有行为和物理进行显式编程。
您可以选择完全用Mono语言编写行为(使用C#,JavaScript或Boo语言之一),也可以用另一种语言编写行为并将其链接到Unity项目。(与游戏对象的实际集成必须通过Mono进行,但是如果您愿意的话,这可以是很薄的一层。)
工作流程与任何游戏引擎基本相同。艺术家制作模型,纹理和动画,音频专家制作声音,程序员编写着色器和行为。
Unity程序员社区在以下两个方面都非常有帮助 answers.unity3d.com和forum.unity3d.com。(也许在Stack Exchange上?)
找出答案的最佳方法是尝试一下:基本版本是免费的,“ Pro”版本有30天的试用期。
Unity3D更像是包装器/库,而不是“拖放”游戏引擎。它不生成代码,也不提供“现成”脚本。
例如,虚幻具有默认的第一人称视角相机,角色控制器,碰撞检测和AI。
您在Unity3D中什么都没有。从Unity3D获得的是一个游戏循环,基于组件的实体系统,一个全面的数学库,意味着可以加载媒体,处理网格,摄像头,即时模式GUI,着色器,渲染管线和其他低级功能。再加上一个不错的编辑器。您只需要担心高级功能。例如,您仍然必须编写自己的第一人称相机编码(如果您未使用默认相机)。但是,您无需处理查找向量等。
严格来说,Unity3D不会为您的游戏生成任何代码(更确切地说,它会生成用于运行游戏的代码,但不会为您的游戏玩法生成代码)
您将必须使用API来定义您的游戏。您可以看一下Unity3D附带的示例,然后重用这些代码。有几个预定义的脚本,但是通常您必须自定义脚本以满足您的需求。
您通过脚本创建游戏;您可以编写行为脚本,在Unity3D中设计关卡,并将这些行为分配给实体(或游戏对象)。它非常灵活,但是编写游戏仍然需要付出努力。我将其与Flash for 3D进行比较。
Unity3D的表面看起来非常简单,几乎所有内容都是预先构建的,但没有一个是正确的。如果您忽略使用已经存在的脚本(每个引擎都存在的脚本,对Unity不利的一面)和您描述为功能强大的插件,那么它们绝对不是,Unity只是带有编辑器的编程接口。
您拥有自己的大部分代码。我在2个不同的项目中经历过。
用flash进行类比是完全正确的,但是我真的不理解您用木偶做的类比。
关于团结的好处是:
坏事:
我不喜欢Unity的地方在于,感觉到所有艰苦的工作都已经完成,因此程序员的价值大大降低了。另一方面,快速教人们如何快速构建事物非常有用。
总结一下:Unity(或类似Unity之类的工具)更适合那些无法接触优秀程序员但仍然知道做一些游戏脚本的艺术家。当然,您可以制作一个全功能的游戏,添加逼真的IA,执行mmo网络代码,否则不做,但是大公司不会使用Unity。
编程模型允许提出一种适合3/4开发工具的解决方案,以使其适合那些“独立”游戏开发商。它重视一个特定的工具,也重视艺术家,但不重视程序员(当然,除了团结团队的工具外)。
对于非程序员来说,Unity是一个很好的捷径,但是他们必须了解视频游戏是由代码行组成的,并且您不能仅凭出色的工具来完成所有工作。在某些时候,它需要了解一些有关底层编程的知识。
考虑到个人项目,我不会使用Unity,因为我不喜欢C#或Boo(Panda对python很好,所以为什么要打扰商业软件呢?),并且因为如果我展示我的项目并且它已经完成了,团结,那就不那么令人印象深刻了。