PlantUMLコードからC#ファイルを自動生成してくれるエディタ拡張
はじめに
unityのエディタ拡張を触ってみたくて練習がてら作ってみました。
僕はunityでプロジェクトを作る前にPlantUMLでクラス図を書くことが多いです。
でもそれをunityに反映させるのってちょっとめんどくさいですよね。
ということでPlantUMlのコードからC#のファイルを生成してくれるエディタ拡張を作ってみました。
対応してない書き方があります。
割とガバが多いですが勘弁してください。
Github
機能説明
Pu2Text
①UnityのAsset直下にあるResourcesフォルダの中からumlファイルを一つ取得し、txtファイルに変換します(拡張子変えるだけ)。
UML2CS
②Assets/Scriptsの中に、namespaceごとにフォルダを作りその中にcsファイルを生成します。
Scriptsフォルダも自動で作ってくれます。
以下の記述に対応しています。
・class ~~
・abstract ~~
・abstract class ~~
・interface ~~
・enum ~~
使い方
準備
Githubからソースコードをクローンします。
①新しいUnityのプロジェクトを立ち上げ、「Editor」というフォルダを作ります。Assets直下じゃなくても大丈夫です。
Editorフォルダの中にクローンした「UML2CS」というフォルダを入れます。
②Assets直下に「Resources」という名前でフォルダを作ります。
Resourcesフォルダの中にクラス図(.puファイル)を入れます。
今回テスト用にpuファイルを用意しました
@startuml Test
title Test
namespace TestNamespace{
class TestClass
abstract TestAbstract
abstract class TestAbstractClass
namespace Game{
interface Testinterface
enum Testenum
}
}
namespace Euglena{
class Test
abstract class Ahaha
}
@enduml
実行
puファイルをtxtファイルに変換する
「UML」→「Pu2Text」を選択すると拡張子が.txtに変換されたコピーが生成されます。
csファイルを生成する
「UML」→「UML2CS」を選択するとウィンドウが出てきます。
ClassDiagram欄に先ほど生成したtxtファイルをアタッチしてCreateボタンを押せば自動で生成してくれます。
実行結果
「Scripts」フォルダに、namespaceごとにフォルダが作られcsファイルがそれぞれ作られました。
using UnityEngine;
public class TestClass : MonoBehaviour {
private void Update(){
}
private void Start(){
}
}
using UnityEngine;
public abstract class TestAbstract : MonoBehaviour {
private void Update(){
}
private void Start(){
}
}
普通のクラスとabstractクラスはMonoBehaviourを継承し、UpdateメソッドとStartメソッドが用意されます。
using UnityEngine;
public interface Testinterface {
}
interfaceやenumはMonobehaviourは継承せず、UpdateやStartメソッドもありません
このエディタ拡張のガバについて
このエディタ拡張はいろいろガバがあります。
①メンバを宣言できない。
変数やメソッド等を宣言する機能はないので自分でやってください(投げやり)
②クラスのメンバとしてenumを宣言してもファイルを分けられる
class Test{
enum Type
}
例えばこんな感じでクラスのメンバにenumを宣言しても
わけられてしまいます。
enumではなく、他のやつでも同じです。
個別に宣言してください(投げやり)
③namespaceをドットで繋げる書き方に対応してない
「TestNamespace.Game」みたいなnamespaceの書き方に対応してないのでやめてください(投げやり)
さいごに
いろいろガバがあって使いにくいと思いますが、そのうち機能を追加できたらいいかなと思います。
あと、複雑なクラス図だともしかしたらよくわかんないことになるかもしれません(ガバ)。
報告をいただけたら幸いです。
それと、深夜に思い付きで作ったのでクソコードになってしまいました、御許しを。では~~
Author And Source
この問題について(PlantUMLコードからC#ファイルを自動生成してくれるエディタ拡張), 我々は、より多くの情報をここで見つけました https://qiita.com/Euglenach/items/9724d86a2917dba18c71著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .