Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
78
Help us understand the problem. What is going on with this article?
@bearjiro

VisualStudio2017でUnity内のソースコードをクラス図に自動変換する

More than 3 years have passed since last update.

はじめに

他の人のソースコードを読むことはすごく大変ですよね。
Unityのソースコードを楽に読む方法を色々調べたら、自動でクラス図を生成する機能がVisualStudioには備わっているらしいとのこと・・・
半信半疑でGoogleで調べてみました。
結果、「クラスダイアグラムで表示」という機能を使えば出来るので、その過程を備忘録的に残します。

前提条件

・VisualStudio2017
・Unity(筆者のバージョンは5.6.3f)
の以上2つは既にインストールされているものとして進行します。

VisualStudio内でUnity用のプラグインをインストール

まずは、VisualStudioのインストーラを(C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe)開きます。
その後、VS2017の変更を押します。

次に、UnityとVisualStudioを連携させるプラグインが必要なので、以下の画像に従って、必要なコンポーネントをインストールしてください。
※既にインストールしている人は進んでもらって構いません。

VisualStudio内でクラスデザイナー機能をインストール

VisualStudioにてクラス図を作成する機能を持つクラスデザイナーというコンポーネントをインストールしていきます。
上のメニューバーから個別のコンポーネントを指定し、クラスデザイナーという項目にチェックを付けて、右下の変更ボタンを押します。(下図参照)

UnityにてVisualStudioを開く

※既に設定している人は飛ばしてもらって構いません。
Unityのエディター画面上部のツールバーよりEdit>Preferencesを開き、
ExternalTools内のExternalScriptEditorをVisualStudio2017に設定します。
(初期の状態では候補に無いため、Browse...からC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDEdevenv.exeを参照する)
その後、エディター画面のツールバーよりAssets>OpenC#ProjectをクリックしてVisualStudioを立ち上げます。
テラシュールブログ様に詳細が載ってあるため、引用させていただきます。(感謝申し上げます。)
Visual Studio 2017 (RC)をUnityで使う(テラシュールブログ)

クラス図を作成する

最後に、今回の目的であるクラス図作成を行います。
今回記事用に使用するUnityプロジェクトは、以前UnityOneWeekのテーマ「夏」で作成したFireWooksEngineerというゲームのプロジェクトです。
よければ遊んでみてください!(宣伝)ここから遊ぶ

さて、本題に戻ります。
今回は、プロジェクト全体のクラス図を作成します。
VisualStudioのソリューションエクスプローラを右クリックして、ビュー>クラスダイアグラムで表示を選択します。(下図参照)

なんと・・・。
自動的にクラス図が作られました!!
素晴らしい

しっかり依存関係まで確認できますね。
エディタになっているので、好きにパーツを動かすことが出来ます。
プルダウンにてフィールドとメソッドを確認もできます。
更に、エディタ上で右クリックして、”イメージとしてダイアグラムをエクスポート”をクリックすると、画像でクラス図を保存する機能まで備わっています!
どこまで素晴らしいの・・・

個別にクラスの相関関係を確認するためには、ソリューションエクスプローラ内の一つのクラスを選択して、同じ操作を行う事で確認できます。

最後に

他人のソースコードを読む際に、最初はクラスの依存関係を全てホワイトボードに書き出す事をやっていましたが、らちがあきませんでした。
結果、面倒になったので、Google先生に聞いてみました。
軽く調べると簡単に出てきたので、何事も調べることが大事ですね・・・。

元々UnityのコードエディタはVSCodeを使っていましたが、Resharperと今回のこの機能が使えるという事で、乗り換えました。
VisualStudio便利( ^)o(^ )

最後に、引用させていただきましたテラシュールブログ様、重ねてお礼申し上げます。
ありがとうございました。

78
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
bearjiro
ゲームプログラマー?です。最近はcocosJSを主に使って、時々LambdaとNodeを使って色々してます。AWS初心者の本職クライアントゲームプログラマです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
78
Help us understand the problem. What is going on with this article?