2017-04-16 123 views
2

我在3D编程/游戏开发领域还很新。我在MonoDevelop中使用Unity,主要使用Blender制作的模型,纹理等。编程逻辑是用C#完成的。使用Unity 3D时有任何限制吗?

我的主要问题是:Unity有没有一切可能?我知道,这是一个很宽泛的问题,但“一切”我的意思之类的东西几乎所有的3D游戏(或也2D游戏)拥有时下,一些例子:

  • 片头/过场动画(如达到在地图上的特定点)
  • 主菜单/菜单配置/动画菜单组件
  • 配置的声音/图形选项
  • 多个地图/场景,加载地图/场景/游戏的需求
  • 声音效果的对象,背景音乐

对不起,我知道这是一个广泛的问题,但我不能摆脱在Unity中我“无法做到我想做的一切”的感觉(如果您知道什么我的意思是)。

例如,我可以写游戏如Call of Duty MW2或Super Mario 64与Blender/Unity完全兼容? (我知道那些可能使用他们自己的游戏引擎等等,但我的意思是基本上所有组成游戏的游戏)。

或者其他方式,谁能说“哦,这是一个好主意,但你不能用Unity实现”或类似的东西。如果是,为什么?

谢谢!

+0

https://madewith.unity.com/希望它会告诉你什么与团结?实际上,你可以与团结 –

回答

0

(我不能发表评论,以低REP)

我可以说,在4年使用Unity我从未有过不能够创造的东西,我想的想法的(虽然我必须为事情做一些解决方法)。现在团结如此广泛,你可以想象一个功能,它存在。

我目前正在与多人游戏的一个学校项目,并努力工作。我知道的唯一限制是其他引擎速度更快,(对于某些人)更易于使用。而且我知道一个人在哪里编写游戏大约需要30秒。哪个不太好。但他的代码也很垃圾。

你可以试着想想一个你想构建的游戏或示例。这将有助于回答这个问题。

+0

谢谢你的回答!我在上面的问题中提到了两个例子游戏。这些只是关于菜单,过场动画,资产加载,游戏玩法,保存/加载游戏状态等的示例。 – Sebastian

+1

至于modding,我知道Unturned(僵尸射击游戏)也是由Unity制作的。他们有MOD支持,所以你可以试着看看他们是如何做到的。 – NLxDoDge

6

我敢说没有游戏真的不可能在Unity编写。有些事情很难或不可行,但让我们从你的小列表开始。

  • 前奏/过场:目前这是一个小手册。您可能需要编写一些C#代码来控制GameObjects和Camera上的一组动画。我会说很难,不是不可能的。另一种方法是使用Cinema Director(资产仓库),或等待,直到统一发布Timeline(以前称为主任,只是那种东西了一个新特性; d)

  • 主菜单:这将是容易的。自从v4.6开始,Unity有一项名为Canvas的功能。很容易制作菜单(甚至是动画)。

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

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

  • 音效,背景音乐:呃...你有我。你可能想看看Unity的Audio Mixer,但那是我从未真正看过的东西。 (理论上它也很容易,我看到我的同事音频所有的工作时间)

统一几乎可以做任何你想要用一个小团队做任何事情。如果你偶然发现一些你不能做的事情,我会建议寻找资产商店,因为很可能有其他人已经有这个问题。

现在,什么团结不能做:

团结是一个游戏引擎设计,以适应大多数人的需求。因此,如果您的游戏需要复杂而繁重的计算,它有时会面临效率问题。但是,如果你有团结的话,你可能也会在别处有他们。这里的另一个选择是将重量级的东西写在统一之外的dll中。无论如何,Unity中的大部分效率问题都可以通过良好的编程实践和一些C#知识来纠正。

修改支持。我认为这是目前统一的最大缺口。有很多来自社区的尝试,但没有一个通用的解决方案将始终有效。如果你打算制作一个可修改的游戏,你可能不得不阅读很多东西,修改代码并自己写很多东西。但是,这不是不可能的。人们已经做到了,你也可以做到。

图形技术 Unity4在AAA游戏通常具有的渲染技术方面存在很多空白,但Unity5很好地适应了它,几乎涵盖了其他任何现代引擎支持的任何东西。 (纠正我,如果我是错误的家伙)在unity5中有几个这些限制。

团结中的大部分限制都会影响到我,尤其是编辑器相关的问题,并非真的不可能解决。


如果我记得什么,我会在这里编辑它。


+0

我虽然误解了我的第四点“多个地图/场景,按需加载地图/场景/游戏对象”。我没有考虑DLC和东西,而是加载了新的GameObjects等等,这些都是你需要的。在播放时切换地图(所以我假设你需要加载地图/角色和其他游戏对象)。因为我不认为你会在游戏开始时加载整个游戏对象/关卡/地图,或者你会? – Sebastian

+0

嗯。我假设你知道团结允许你创建单独的场景。当你调用UnityEngine.SceneManagement.SceneManager.LoadScene(sceneNameOrIndex)时,它将开始加载新的关卡,并将其中的所有内容废弃。由于可能需要一段时间才能加载所有内容,因此还有一个异步版本(不会立即废弃旧场景)。如果你希望将某个对象从一个场景持久保存到另一个场景(比如某些玩家的得分,任务信息等),你可以在Awake()中添加一个对'DontDestroyOnLoad(gameObject)'的调用。 这次我做对了吗? –

+0

也许你的意思是[预制实例化](https://docs.unity3d.com/Manual/InstantiatingPrefabs.html)随需加载GameObjects。 –

2

Unity是一个非常通用的引擎。 如果您指定的所有内容都使用Unity的默认引擎,或者某些插件也可用,那么您可以最大限度地做到最多。

过场动画

你可以写在C#代码编辑您的过场动画,这一切都取决于你要确保你的电影的质量水平。

主菜单

你可以得到角落找寻与团结的默认安装缴费的工具创建菜单和其他的HUD轻松,格外的“画布”游戏对象进行的HUD工作正常,和负载菜单像其他任何在游戏场景

声音

声音编辑,团结是相当不错的,没有那么多创造声音,但配置他们将如何重现游戏

地图

地形编辑器真的很强大,你也可以从资产存储导入的资产包,也有关于如何使自己的地图,让你感动在YouTube上好看的视频,还许多像着色器,风工具和地形

如果你正在寻找更强大的图形和更逼真也许团结是不是你要找的工具,虚幻填补更多的空白,但你必须学习C++ ,编辑的主要lenguaje。你第一次,Unity是一个非常坚实的选择