条件符号不符合预期的作用

问题描述 投票:0回答:1

我正在开发C#单机游戏,我的代码库由我的解决方案中的3个项目组成。

  1. 包含我所有游戏引擎代码的共享便携式库。
  2. 一个用于我所有游戏功能的monogame opengl跨平台项目
  3. 我的编辑器的monogame opengl跨平台项目

我的目标是能够在我的引擎代码(项目1)中使用条件编译符号来拆分引擎代码,以便让我确定当前应用程序是游戏本身,还是Im目前在编辑器中(即EDITOR或GAME,所以我可以使用#if EDITOR或#if GAME等)。我不想在实际代码中包含实例变量或静态变量,因为我想从实际游戏项目中隐藏某些内容。

我的主要问题是,如果在编辑器项目上定义条件符号,则实际上不会在我的引擎的代码中定义条件符号,因为编辑器引用了主游戏代码,而主游戏代码也引用了可移植的引擎代码。我可以在游戏代码项目(1.)中更改条件符号,这些符号将反映在引擎代码中。

我已经尝试直接在编辑器项目本身中引用可移植引擎代码,但这会产生冲突错误,因为在游戏代码项目中也已引用了它。

解决此问题的最佳方法是什么?

[这是我当前的参考设置enter image description here

c# visual-studio visual-studio-2019 monogame
1个回答
0
投票

您可以为编辑器和游戏创建2种配置。

构建>配置管理器...

配置不同的符号和输出位置。

然后使用批处理构建分别构建两个解决方案。

构建>批量构建...

© www.soinside.com 2019 - 2024. All rights reserved.