Visual Studio Code(以降、VSC)の便利な機能に、メソッドや変数一覧を表示する機能があります。
環境:
Unity 2020.2.2f1
MacOS Catalina 10.15.7
Macなので、VSCの画面にて、[command] + [Shift] + [o] を押すと画面上に「@」と入力された状態の入力蘭が表示され、メソッド等の一覧が表示されます。
しかし、そうはなりませんでした。
エディタには何やら警告が表示されているので、「Show Output」を押してログを確認してみました。
[warn]: OmniSharp.MSBuild.ProjectManager
Failed to load project file '/Users/Shared/Unity/AppName/Assembly-CSharp.csproj'.
/Users/Shared/Unity/AppName/Assembly-CSharp.csproj
/Users/hogehoge/.vscode/extensions/ms-dotnettools.csharp-1.23.9/.omnisharp/1.37.6/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1180,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at
https://aka.ms/msbuild/developerpacks[fail]: OmniSharp.MSBuild.ProjectManager
Attempted to update project that is not loaded: /Users/Shared/Unity/AppName/Assembly-CSharp.csproj
どうもC#用のパックが必要らしいので、記載されているURLに行ってみるものの、Winしかありませんでした。
困ったので調べてみると、以下の方法で解決できました。
■Unity側
@Player Settings > Other Settings > Configuration > Api Compatibility Level を「.NET 4.x」に変更。
■mac側
@homebrewを最新版にアップデート
※homebrew = macのPackageManagerのようなもの
Ahomebrewからmonoをインストール
BVSCの設定ファイルに追記
具体的に説明していきます。
■Unity側
@Player Settings > Other Settings > Configuration > Api Compatibility Level を「.NET 4.x」に変更。
.NETの設定が合っていない可能性があるので、プロジェクト設定を「.Net Standard 2.0」から「.Net 4.x」に変更。
次に、Package Managerから、VSCに関するものを最新版に上げてみました。
この段階で解決しなかったので、次はmac側の環境設定を調べてみたところ、homebrewが古くて設定も完了していないようでした。
■mac側
@homebrewを最新版にアップデート
最新版にアップデートしようとしたところ、エラーが出てしまいました。
% brew update
fatal: could not read Username for '
https://github.com': terminal prompts disabled
Error: homebrew/homebrew-php does not exist! Run `brew untap homebrew/homebrew-php` to remove it.
==> Downloading
https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.6.3_2.yosemite.bottle.tar.gz################################################################# 100.0%
==> Pouring portable-ruby-2.6.3_2.yosemite.bottle.tar.gz
ログで指定されたコマンドをそのまま打ちます。
% brew untap homebrew/homebrew-php
Untapping homebrew/php...
Untapped (35 files, 829.2KB).
再びアップデートを試みるも、再びエラー。
% brew update
Error:
homebrew-core is a shallow clone.
To `brew update`, first run:
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
This command may take a few minutes to run due to the large size of the repository.
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!
指定されたコマンドを打ったところ、今度は無事アップデートできました。
% git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
remote: Enumerating objects: 428535, done.
remote: Counting objects: 100% (428498/428498), done.
remote: Compressing objects: 100% (164714/164714), done.
remote: Total 420389 (delta 257766), reused 415481 (delta 252864), pack-reused 0
Receiving objects: 100% (420389/420389), 149.84 MiB | 15.91 MiB/s, done.
Resolving deltas: 100% (257766/257766), completed with 3776 local objects.
念のため確認。
% brew update
Already up-to-date.
次は、homebrewの設定状況を確認するため、「doctor」コマンドを使います。
% brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!
Warning: The following directories do not exist:
/usr/local/Frameworks
You should create these directories and change their ownership to your user.
sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libTMAESCrypt.a
Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
boost
php
mysql
Warning: Xcode alone is not sufficient on Catalina.
Install the Command Line Tools:
xcode-select --install
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
/usr/local/bin/innochecksum
……(たくさん)
Warning: Homebrew's "sbin" was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting your PATH for example like so:
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.zshrc
doctorで指摘されたコマンドを全て実行。
% sudo mkdir -p /usr/local/Frameworks
% sudo chown -R $(whoami) /usr/local/Frameworks
% brew cleanup
% xcode-select --install
% brew link boost
% brew link php
% brew link mysql
% rm -rf /usr/local/lib/libTMAESCrypt.a
% echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.zshrc
パスの設定変更を反映。
% source ~/.zshrc
これでhomebrewの設定が完了しました。念のため確認。
% brew doctor
Your system is ready to brew.
次のステップへ。
Ahomebrewからmonoをインストール
monoがインストールされているかと思いきや、インストールされていませんでした。
% brew upgrade mono
Updating Homebrew...
Error: mono not installed
なので、monoをインストール。
% brew install mono
数分でインストールできたので、doctorコマンドで設定をチェック。
% brew doctor
Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
mono
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
/usr/local/bin/easy_install-3.8
/usr/local/bin/pip3.8
指定されたコマンドを打ち、monoにリンクを貼りました。
% brew cleanup
% brew link mono
% brew doctor
Your system is ready to brew.
最後に、VSCの設定ファイルを編集します。
BVSCの設定ファイルに追記
まずは、インストールされたmonoのバージョンを確認。
% cd /usr/local/Cellar/mono
% ls
6.12.0.107
このバージョン番号を使い、VSCの設定ファイルに追記します。
macの場合、パスは
/Users/[ユーザー名]/Library/Application Support/Code/User/settings.json
でした。
赤い部分が追記した箇所です。
{
"window.zoomLevel": 0
,
"omnisharp.useGlobalMono": "always",
"omnisharp.monoPath": "/usr/local/Cellar/mono/6.12.0.107"}
VSCを再起動して、[command] + [Shift] + [o]を押してみたところ、無事、メソッド一覧が表示されました。
これで作業効率が上がる!!
参考:
https://qiita.com/kyasbal_1994/items/ecf19a3feb60a12a61f9https://qiita.com/hajimeni/items/b8d1b5db1cb08eeb7d1dhttps://qiita.com/Ytz_Ichi/items/94e1c5c45fc8fd4459fahttps://qiita.com/ponsuke0531/items/f2ea798bcc8f1e876d90https://qiita.com/haruu_11113/items/0bdde67f17b60e4fb657https://qiita.com/FrogWoman/items/7c0fdaa7550dc5895a33