質問するログイン新規登録
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1035閲覧

クラスの中にあるクラスにenum型を用意するとvisual studioが重くなる

Kide

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2023/08/31 10:14

編集2023/09/01 06:24

0

0

実現したいこと

タイトルに書いてあることの原因や解決方法を知りたいです。
visual studioが重くなる原因や解決方法を知りたいのであって、コードの書き方やデザインパターン?を知りたいわけではないです。
そういった意味ではここで聞くのは間違っているかもしれませんが、visual studioを使っている人からの解答も得られやすいだろうと思いここで質問させていただきます。

Unityでvisual studioを使って以下のようなコードを書くとvisual studioの動作がとても重くなってしまいます。
改行や、入力した後やしている最中に1,2秒フリーズしたり、キーを押しても反応するまでに時間がかかったりなど
とても作業できるような状態ではなくなります。
visual studioの画面全体で反応がとても遅くなるような感じです。
PC自体の動作が重くなっているわけではないです。

visual studioのバージョンは17.7.3です。
windows11です。
拡張機能などは入れていません。

該当のソースコード

このコードはあくまで、仮実装のために書いていたらvisual studioが重くなったため、その仮のコードをそのまま載せただけのものなります。

using System.Collections; using System.Collections.Generic; using UnityEngine; public class SoundPlayer : MonoBehaviour { [System.Serializable] public class SoundData { public enum soundType { Effect, test } } public GameObject test1; public float test2; public Vector3 test3; }

調査したこと・試したこと

visual studioのアップデート
visual studioの修復
PCの再起動
自分なりにvisual studioが重くなる原因を検索したりしましたが、原因や似た症状などを見つけることはできませんでした。

補足情報

以下のようにメンバ変数としてenum型を内部クラスより前に宣言したあと、
内部クラス内でもenum型を宣言した場合は動作が重くなるなどの問題はありませんでした。

public

1{ 2 public enum testEnum; 3 [System.Serializable] public class SoundData { 4 public enum soundType { Effect, test } 5 } 6 public GameObject test1; 7 public float test2; 8 public Vector3 test3; 9}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

len_souko

2023/09/01 03:52

クラスの中にクラスを定義する必要は在りますか? 別でクラスを定義してそのインスタンスを使用するべきではありませんか? そしてそのSoundDataってインスタンスを複数生成するようなものですか?
len_souko

2023/09/01 03:59

https://learn.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/nested-types > また、入れ子になった型を外部から参照できるようにすることは、コード品質ルール CA1034 の "入れ子にされた型を参照可能にすることはできません" に違反することにもご注意ください。 publicを付けることはできるけど、品質ルール違反ですと記述されています 直感ですが、Unityで値を変更するなどしたいがためにpublicを付けているのだと思いますが、その場合は内部クラスにせずに名前空間の直下で定義すべきです
fana

2023/09/01 05:58

> 以下のようなコードを書くとvisual studioの動作がとても重く この説明では直面されている問題現象が分かりづらいように思います. コードを書くと→重くなる とのことですが,重くなるのはいつなのでしょう? そのようなコードを書いたならばその瞬間から無条件にVisual Studioが重くなるのでしょうか? それともそのようなコードを書いた後に何らかの操作をするまでは重くならないのでしょうか? あと「重くなる」も具体的に現象を述べると良いかもしれません. > visual studioの動作がとても重く というと,例えば 「コードエディタ上で A キーを押下してもそれが反映されてコードに A が挿入されるのに2秒くらいかかる」とか, 「Visual Studio のメインメニューの項目をクリックしてからメニュー項目が出てくるまでに1秒くらいかかる」とか…?
Kide

2023/09/01 06:32

> クラスの中にクラスを定義する必要は在りますか? 現状Unityで実装したいものとして、音源とその音量のデータを持ったクラスと、そのクラスのリストを用意して、リストからクラスのデータを参照して音を鳴らすといったことができるものを実装したいと思い、クラスの中でクラスを定義していました。 またpublicのことですが、仮でコードを書いていたらvisual studioが重くなったため、そのまま仮のコードを載せたという形になります。 実際にはクラスはprivateにしますし、その中の変数などもプロパティを使って外部から変更できないようにするつもりです 紛らわしいことをしてしまってすみません。 > コードを書くと→重くなる とのことですが,重くなるのはいつなのでしょう? enumのメンバーを一つでも宣言すると重くなるようです また重くなるときの現象として改行や入力などをした後やしている最中に1,2秒フリーズしたりするといった具合です。
len_souko

2023/09/02 18:08 編集

> 音源とその音量のデータを持ったクラスと、そのクラスのリストを用意して、リストからクラスのデータを参照して音を鳴らすといったことができるものを実装したいと思い、クラスの中でクラスを定義していました。 クラス定義をクラス内で行う必要性は感じられません。単純にprivateフィールドでSoundDataのリストを保持するだけの話だと思います > 原因や解決方法を知りたいです。 原因に関してはcan110さんの情報があっているのかどうか判断付きませんが、インナークラスに定義すると重くなるというのならばインナークラスで定義しないというので回避すれば良いかと思います ところで、privateにするというのであるのならば、[System.Serializable]の属性は削除するのですか? また、クラス定義からこの属性を削除したら軽くなったりしますか? 直感ですが、この属性の影響で編集するたびにUnityで扱えるようにするための処理が増えているだけのような気がしましたので =>Unity 2021.3.10f1 + VS 17.8.0 Preview 1.0だと、既存のコードに追加する形だと発生しませんでした
guest

回答1

0

ベストアンサー

質問に対する回答となっていない、参考情報程度の回答です。

似たような現象がC# Code Editor is very slow, no issue with VBで報告されていますが、再現条件などの情報が少ないためとくに対応はとれていないようです。
また過去にもText editor extremely slow.といった似た現象もあがっていました。

私の体験談を言わせてもらうと(なんか日本語おかしいような?)、こういうのはわりと製品の不具合であることも多く、とくに最近のVSではこの手の不具合が増えてきたような気がしています。

複数のユーザーから「質問に対する回答となっていない投稿」という指摘を受けました。
指摘された方々にお願いです。
どのあたりがどのような理由で「回答となっていない」のか、具体的に指摘コメントください。

どうも規約違反をおこなった単一ユーザーによる指摘のようなので無視します。

投稿2023/09/01 10:36

編集2023/09/09 07:05
can110

総合スコア38350

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2023/09/08 10:53 編集

もうひとつあった他ユーザーの回答は削除されたようですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問