自 C# 7.0 以来,语言中添加了许多有助于我们编写更少代码的代码改进。 本教程将重点介绍可以帮助我们编写更简洁易读的代码的六个新特性,以及我们如何在 C# for Unity 中使用这些特性。
这些是教程部分:
-
先决条件
-
设置我们的 Unity 项目
-
教程结构
-
Unity 中的 C# 功能支持
-
开关表达式
-
属性模式
-
类型模式
-
恒定模式
-
关系模式
-
逻辑模式
-
结论
先决条件
遵循本教程需要以下先决条件:
-
Unity基础知识
-
以前在 Unity 中编写 C# 脚本的经验
设置我们的 Unity 项目
首先,我们需要创建我们的 Unity 项目。 对于本教程,我们将使用 2021.3.4f1 版本,在我撰写本文时,它是最新的 LTS Unity 版本。
在项目模板列表中,选择 2D(core) (最简单的),为其命名,然后单击 创建项目 按钮。
项目启动后,创建一个名为 Scripts在 - 的里面 Assets文件夹。 在本教程中,我们将使用它们来组织我们的项目。
教程结构
对于如何使用新 C# 功能的每个示例,我们将首先看看它之前是如何完成的,然后我们如何使用新功能编写越来越少可读性的代码。
下面的类只是在整个教程中用于所有示例的存根。 您可以将它们添加到脚本中 Scripts文件夹:
// GAME MODE. public enum GameMode { TimeAttack, Survive, Points } // ENEMIES. public abstract class Enemy { public bool IsVisible { get; set; } public bool HasArmor { get; set; } } public class Minion : Enemy { } public class Troll : Enemy { } public class Vampire : Enemy { } public class Zombie : Enemy { } // WEAPONS. public abstract class Weapon { } public class Stake : Weapon { } public class Shotgun : Weapon { }
Unity 中的 C# 功能支持
在 C# 版本 8 和 9 中,该语言添加了许多新功能。 您可以在以下链接中阅读每个版本的完整功能列表:
-
C# 8.0 中的新功能
-
C# 9.0 中的新功能
Unity 中的 C# 8 和 9 功能:缺少什么?
Unity 对 C# 8 的支持 已从 2020.2 版本开始,C# 9 已从 2021.2 版本开始。
请注意,并非 Unity 支持所有 C# 8 和 9 功能,例如:
-
默认接口方法
-
指数和范围