3d - 使用 Unity 3D 是否有任何限制?

标签 3d unity-game-engine

我在 3D 编程/游戏开发领域还是个新手。我将 Unity 与 MonoDevelop 结合使用,主要处理用 Blender 制作的模型、纹理等。编程逻辑由C#完成。

我的主要问题是:Unity 是否一切皆有可能?我知道这是一个广泛的问题,但我所说的“一切”是指现在几乎所有 3D 游戏(或 2D 游戏)都有的东西,一些例子:

  • 简介/过场动画(例如到达 map 上的特定点)
  • 主菜单/菜单中的配置/动画菜单组件
  • 可配置的声音/图形选项
  • 多 map /场景,按需加载 map /场景/游戏对象
  • 音效、背景音乐
  • 等等

再次抱歉,我知道这是一个广泛的问题,但我无法摆脱在 Unity 中“无法做我想做的一切”的感觉(如果你明白我的意思)。

例如,我可以编写游戏吗?使命召唤 MW2 或 super 马里奥 64 完全使用 Blender/Unity? (我知道那些可能使用自己的游戏引擎等,但我只是指基本上构成整个游戏的所有组件)。

或者以其他方式表述,有人会说“哦,这是一个好主意,但你无法用 Unity 实现这一点”,或类似的话。如果是,为什么?

谢谢!

最佳答案

我敢说没有游戏是真的不可能用 Unity 编写的。有些事情非常困难或不可行,但让我们从你的小 list 开始。

  • 介绍/过场动画:目前这是一个小手册。您可能需要编写一些 C# 代码来控制游戏对象和相机上的一组动画。我想说很难,不是不可能。另一种方法是使用 Cinema Director (资源商店)或等到 Unity 发布 Timeline (以前称为“Director”,专门为此类内容而设计的功能;D)

  • 主菜单:那很容易。自 v4.6 起,Unity 拥有一项名为 Canvas 的功能。用它制作菜单非常容易(甚至是动画菜单)。

  • 声音和图形选项:虽然不是我的部门,但我相信您想要的是 Unity Quality settings 。它们允许您创建一些预定义的图形设置,以便您的用户可以在它们之间进行选择。另外,在 ShaderLab 中编写着色器时(unity 的着色器语言),您可以根据您的播放器拥有的显卡告诉 Unity 它应该如何表现。

  • 多 map /场景,按需加载 map /场景/游戏对象:对于内容点播有AssetBundles 。从未真正使用过它们,但总体思路就是:将一些 Assets 分组到一个文件中,并告诉游戏下载它、加载 Assets 并在游戏中使用它们(如 DLC)。如果您打算在其中存储代码,您可能会遇到一些困难,但同样,这并非不可能。

  • 音效、背景音乐:呃...你找到我了。您可能想查看 Unity 的 Audio Mixer ,但这是我从未真正研究过的事情。 (理论上也很简单,我看到我的同事一直在处理音频)

Unity 几乎可以做您在小团队中想做的任何事情。如果您偶然发现一些无法轻松完成的事情,我建议您查看 Assets 商店,因为很可能其他人已经遇到了这个问题。

现在,关于 Unity 不能做什么:

Unity 是一款旨在满足大多数人需求的游戏引擎。因此,如果您的游戏需要复杂而繁重的计算,它有时会面临效率问题。但如果你把它们统一起来,你可能也会在其他地方拥有它们。这里的另一种选择是在 Unity 之外的 dll 中编写繁重的内容。无论如何,Unity 中的大多数效率问题都可以通过良好的编程实践和一点 C# 知识来纠正。

模组支持。我认为这是 Unity 目前面临的最大差距。社区进行了很多尝试,但没有一个始终有效的通用解决方案。如果您打算制作一款可修改的游戏,您可能需要阅读大量内容、改编代码并自己编写大量内容。但话又说回来,这也不是不可能的。人们已经做到了,你也可以做到。

图形技术 Unity4 在 AAA 游戏通常拥有的渲染技术方面存在很大差距,但 Unity5 确实很好地 catch 了,并且应该涵盖几乎所有其他现代引擎支持的内容。 (如果我错了,请纠正我)unity5 中涵盖了其中的一些限制。

令我特别困扰的 Unity 中的大多数限制都与编辑器相关,并且并非真正无法解决。

<小时/>

如果我记得任何内容,我会在这里编辑。

<小时/>

关于3d - 使用 Unity 3D 是否有任何限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43442361/

相关文章:

c# - 多个四元数乘法

c# - 统一3D : Loading FBX dynamically using AssetBundle

c# - 使用 WaitForSeconds() 时使协程更快吗?

css - 折纸效果

3d - Hadoop 和 3d 图像渲染

c# - 使用 IJobParallelFor 的 System.InedxOutOfRangeException

c# - 如何在 Android Image Gallery 中保存从 unity 拍摄的照片?

android - 使用SAME顶点数组显示GL.POINTS和GL.LINES-Android OpenGL ES1.0

c++ - 编写 3D 渲染浏览器插件

c++ - 使用 Directx10 渲染