【Unity3D】【VS2010】IDEを2つ立ち上げてコピペでソース管理する時のメモ1

シェアする

そもそも何故2つ立ち上げているかと言うと、

片方はゲーム本体(Unity)で、もう片方はアプリケーションサーバーな訳です。

で、この時に共通の情報(パケット処理周り)を持たせてる共通クラスファイルが1個だけあるんですが・・・

何が面倒かと言えば、

Unityのコンソール出力は「Debug.Log」に対して

鯖側が普通にWindowsフォームなので「Console.WriteLine」であること。

なので共通クラスファイルにこういうコードを書いて・・・

    namespace UnityEngine
    {
        public class Debug
        {
            public static void Log(string s)
            {
                Console.WriteLine(s);
            }

            public static void LogWarning(string s)
            {
                Console.WriteLine(s);
            }
        }
    }

コンソール出力はDebug.Logで統一。

ソースを変更して、鯖からUnityにコピペした時はこれをコメントアウト
Unityから鯖にコピペした場合はコメントアウトを外す・・・とやってましたがちょっと面倒くさい(‘A`

#if で何とかならんかなあ・・・と思ってた結果

1. 鯖側のプロジェクトのプロパティ > ビルド > 条件付きコンパイルシンボルに任意の文字列を追加

kk001

※セミコロン区切りで複数定義可能。

2. ソースをこのように書き換える

#if IsM2Server
    namespace UnityEngine
    {
        public class Debug
        {
            public static void Log(string s)
            {
                Console.WriteLine(s);
            }

            public static void LogWarning(string s)
            {
                Console.WriteLine(s);
            }
        }
    }
#endif

これで無事にUnity側にコピペしてもこのDebug.Logモドキはコンパイルされないことに。

シンボルの定義を今更知った次第でありました(汗

そもそもこれ以外にも方法あるよ!とか管理の仕方からおかしい!

とかいう話だったら申し訳無い(‘A`