我需要了解 C# 才能使用 Unity 进行编程吗?

Do I need to know C# to program with Unity?

我只学习了一些 C# 的基本程序,但这些知识可能不足以使用 unity 进行编程。我可以直接跳到 C# 中的图形,了解有关控制结构、数据类型、函数和循环的更多信息,还是我需要了解更多信息才能在 Unity 3d 中制作我自己的基本游戏?在 C# 中我基本上需要了解哪些概念才能在 Unity 中编程?我目前的 C# 知识太基础了。

对于 Unity,您可以使用 C# 或 UnityScript(一种 JavaScript 变体)来编写游戏逻辑,并使用 Cg(非常类似于 HLSL)来编写着色器。不过,如果你想花点钱,你还可以从 Unity Asset Store 获得基于节点的编程工具(有点像 Unreal Engine 4 的蓝图)。

至于实际概念,必须了解 C# 的大部分一般使用方面(不同的循环、列表和字典等),但您还需要了解 Unity 添加了一些它自己的东西,例如 coroutines,以及 Unity 是游戏引擎这一事实以及游戏引擎流程的工作原理(即,不要在长时间运行的 Update 方法中放置循环,否则整个游戏会滞后等) .阅读基于组件的架构也很重要,因为您可以拥有多个组件,而不是每个游戏对象只有一个 class。这样,您可以说添加一个行为(Unity 的组件名称)赋予某些东西寻路的能力,另一个赋予同一对象向玩家射击的能力,等等​​。

最后,看看 serialization 上的 Unity 文档。序列化在 Unity 的许多方面都非常重要,包括在不重新启动编辑器的情况下重新编译代码,以及 saving/loading 和网络(如果您想进行此类操作)。知道它是如何工作的很方便,但可以确保您所做的事情既高效又确保引擎按照您期望的方式处理您的数据。