我正在开发C#单机游戏,我的代码库由我的解决方案中的3个项目组成。
我的目标是能够在我的引擎代码(项目1)中使用条件编译符号来拆分引擎代码,以便让我确定当前应用程序是游戏本身,还是Im目前在编辑器中(即EDITOR或GAME,所以我可以使用#if EDITOR或#if GAME等)。我不想在实际代码中包含实例变量或静态变量,因为我想从实际游戏项目中隐藏某些内容。
我的主要问题是,如果在编辑器项目上定义条件符号,则实际上不会在我的引擎的代码中定义条件符号,因为编辑器引用了主游戏代码,而主游戏代码也引用了可移植的引擎代码。我可以在游戏代码项目(1.)中更改条件符号,这些符号将反映在引擎代码中。
我已经尝试直接在编辑器项目本身中引用可移植引擎代码,但这会产生冲突错误,因为在游戏代码项目中也已引用了它。
解决此问题的最佳方法是什么?
您可以为编辑器和游戏创建2种配置。
构建>配置管理器...
配置不同的符号和输出位置。
然后使用批处理构建分别构建两个解决方案。
构建>批量构建...