Я работаю в одноигровой игре c#, и моя база кода состоит из 3 проектов в моем решении.
- Общая переносимая библиотека, которая содержит весь код моего игрового движка.
- Кросс-платформенный проект OpenGL для всех моих игровых функций
- Кросс-платформенный проект OpenGL для моего редактора
Моя цель - использовать условную компиляцию символы в коде моего движка (проект 1.), чтобы разделить код движка, чтобы я мог определить, является ли текущее приложение самой игрой, или я сейчас в редакторе (ie РЕДАКТОР или ИГРА, чтобы я мог иметь #if РЕДАКТОР или #if ИГРА et c). Я не хочу, чтобы в текущем коде была переменная экземпляра или переменная stati c, потому что я хотел бы скрыть определенные вещи от реального игрового проекта.
Моя основная проблема заключается в том, что если я определю условные символы в своем проекте редактора, он фактически не будет определен в коде моего движка, поскольку редактор ссылается на основной код игры, который имеет ссылку на код переносимого движка в теме. Я могу изменить условные символы в проекте кода игры (1.), и они будут отражены в коде движка.
Я пытался ссылаться на код переносимого движка прямо в самом проекте редактора, но это приводит к появлению ошибок конфликтов, поскольку на него также ссылаются в проекте кода игры.
Каким будет мой лучший способ решения этой проблемы?
Вот мои текущие настройки