Unity でプラットフォーム依存コンパイル内がグレーアウトされるときの対処法

1 min read読了の目安(約1300字

何があったか

Unity で Build Settings を「Universal Windows Platform」にした状態で、
スクリプトファイルで「#if WINDOWS_UWP」を使用して下記のコードを書いたが、
「#if WINDOWS_UWP」内がグレーアウトされてしまいました。
このため、オートコンプリートが一切機能しない!
結構実装がつらい状態でした。

#if WINDOWS_UWP
using Windows.Storage; // この行がグレーアウト
#endif

この状態を可決する方法がわかりましたので、
自分の備忘録として残しておきます。

環境

  • Unity 2019.4.20f1
  • Visual Studio 2019 Version 16.8.5

対処法

  1. Unity で [Edit] > [Preferences] を開く

  2. [External Tools] を開く

  3. [External Script Editor] が Visual Studio であることを確認

  4. [Player projects] にチェックを入れる
    2.png

  5. [Regenerate project files] を選択
    3.png

  6. スクリプトを開く

  7. プロジェクトが [Assembly-CSharp] であることを確認(これだとグレーアウトされる)
    4.png

  8. プロジェクトを [Assembly-CSharp.Player] に変更(グレーアウトされない)
    5.png

参考サイト