首页 > 解决方案 > 我可以在 Unity 中使用预处理器指令来区分调试和发布模式吗

问题描述

我想用 Unity 创建一个基于关卡的游戏。假设您在完成上一个级别后解锁了下一个级别。在您找到某些物品之前,可能会锁定某些级别。

您将如何测试游戏的特定部分?假设世界 3 级别 8 包含一个带有洞穴的部分,玩家必须在其中跳过多个障碍物。你将如何在不重新启动关卡的情况下一遍又一遍地测试这个洞穴场景?我的意思不是用单元测试来测试你的应用程序。也许您想尝试特定的机制,并且特定级别中的特定位置最适合您的测试。

当然,您可以准备一个保存游戏或添加一些作弊代码,例如“按 + 跳过此级别”,但我认为作弊代码将是最糟糕的主意,因为您必须在发布游戏之前删除所有这些行(以及每个下一个版本)。

使用 C# 和 Visual Studio 进行开发时,可以添加预处理器指令。游戏开发是否存在类似的东西,尤其是 Unity?

标签: c#unity3d

解决方案


是的。您可以在Scripting Define Symbols中定义它们,可从以下位置访问:

编辑 -> 项目设置 -> 播放器 -> 其他设置 -> 脚本定义符号

手册中,您还可以找到已经在统一中实现的最有用的指令。

它们主要用于依赖于平台的编译,但它们也可用于区分编辑器和实际应用程序。

例如#if UNITY_EDITOR,仅当您在统一编辑器中时才会运行代码。


推荐阅读