Sempre828
@Sempre828

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

コードが薄く表示されてしまう

解決したいこと

UnityにVisual Studio2022を連携させてC#を書いています。
2024/11/15頃に、Visual Studioをv17.12に更新したところ、画像のようにVoid Startから下のコードが薄く表示されるようになりました。
バージョンアップする前はちゃんと表示されていたので、薄くなってしまった原因が知りたいのと、どうしても気になってしまうので直したいです。
宜しくお願い致します。

Unityと連携している他のファイルも同様の事が起きていました。
連携していないファイルはちゃんとコードが表示されています。

環境

Unity2022.3.48f1
Visual Studio 17.12.0

コード薄い問題.png
見つからない.png

`

自分で試したこと

エラーメッセージのIDE0051やUNT0001を調べてみたら
非公開メンバーが使用されていない事や、空のメッセージ?というエラーだと言う事は分かりました。
クラスとUnity側で作成したC#ファイルの名前も間違っていません。
使用されていないと言われていても、Unity側でプログラムを実行すると、ちゃんと動いてくれます。

1

3Answer

エラーメッセージについて

 IDE(番号)という表記はアドバイスだったり何か示したりするものなので、エラーメッセージではありません(エラーが発生した場合はCS(番号)という表記になります)。なので、そのメッセージは気にしなくても良いです。

1Like

Comments

  1.  メソッド内全てが薄くなるのはプライベートメソッドが使われていないからかもしれません。Unityの内部はあまりよく分かりませんが、実行するときにStart()メソッドを呼び出してからUpdate()メソッドを何度も呼びだすコードが生成されていると思います。そのファイルは実行時のみ生成されるので、Visual StudioがStart()とUpdate()メソッドが呼び出されていないと判断をし、プライベートメンバーが呼び出されていません。というメッセージを出して、メソッド内を薄くしたのではないでしょうか。

フェードアウトが気になる人は結構いるようで以下の stackoverflow の記事を見つけました。

How to disable fading unused methods in Visual Studio 2022 17.12.0?
https://stackoverflow.com/questions/79195382/how-to-disable-fading-unused-methods-in-visual-studio-2022-17-12-0

そのコメント欄からリンクが張ってある Microsoft の Developer Community の記事 (URL 下記) を見ると、フェードしなくなるようにする設定はないし、Microsoft も今のところはそういう設定を設ける気もないようです。

unused private member (IDE0051) fading edit
https://developercommunity.visualstudio.com/t/unused-private-member-IDE0051-fading-e/10781612

現状できることは、上の記事に書いてある、

"please suggest a feature."

ぐらいでしょうか。

ちなみに、Unity に限らず、コンソールアプリなどでも同様なことになります。下の例は .NET 9.0 のコンソールアプリです。このプログラムでは明らかに使われないプライベートメソッド MyTestMethod2 はフェードアウトされてます。

unusedMethod.jpg

自分は、自分は全く気にならないどころか、使ってない無用なメソッドを一目で見て分かるようにするということで有用な機能だと思うのですが・・・ まぁ、個人の好みの問題ですけど。


【追記】

Unity 特別の事情があって、ちゃんと Unity が使うのに使ってないと判定されるのは我慢ならんと言うことなのかもしれませんね。であればサプレスする方法はあります。

例えば、以下のようにすると、

supress.jpg

以下のように属性が追加されて警告がサプレスされ、フェードアウトもされなくなります。

unusedMethod2.jpg

0Like

Your answer might help someone💌