Это работает примерно так:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
#if !UNITY_EDITOR
using System.Data.Linq;
#endif
public class NewBehaviourScript : MonoBehaviour
{
void Start()
{
#if !UNITY_EDITOR
print("Nothing happen");
#endif
}
}
using System.Collections;
#if !UNITY_EDITOR
using System.Data.Linq;
#endif
public class NewBehaviourScript : MonoBehaviour
{
void Start()
{
#if !UNITY_EDITOR
print("Nothing happen");
#endif
}
}
Во-первых, не смотря на то, что Unity, как я понял, не поддерживает пространство имён System.Data.Linq, скрипт отлично скомпилируется т.к. мы находимся в среде UnityEditor, значит компилятор просто-напросто пропустит этот код.
Во-вторых, при запуске игры на консоле ничего не будет выведено по той же причине - мы в среде UnityEditor, значит код будет пропущен.
В моём случае это помогло т.к. моя библиотека включала нежелательный код, который в самом проекте Unity мне не требовался.
Дополнительную информацию по данной теме можно найти здесь.