8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unity のプロジェクトに NuGet のパッケージをインポートするエディタ拡張を作ったよ

Last updated at Posted at 2021-02-26

まえがき

 例のごとくこの記事は宣伝で、技術的なことは別に書いてます。そちらは以下の通り。

背景

 Unity のプロジェクトで、NuGet のパッケージを使用したいときは GlitchEnzo/NuGetForUnity を利用すれば基本的には問題ない。そう、基本的には。例えば、ネイティブプラグインには対応しておらず(issue にある通り、対応しなさそう)、パッケージの参照が違うバージョンであれば、問題のないバージョンの参照であってもエラーが発生する。そのため、私が使うには不十分であった。
 そこで、私は NuGetForUnity が動作した後に処理をするようなエディタ拡張を考えたが、そもそも動作した後って取れなくない?(NuGetForUnity は .dll で配布されるため)と思い、どうせだからと一から開発することにした。

成果物

 二か月でできた。(本業が大変だったから実質一か月だけど。)こんな感じ。kumaS-nu/NuGet-importer-for-Unity

Demo

概要

NuGet importer for Unity は高速で使いやすく、非常に強力に NuGet のパッケージを Unity へ導入できるようにするエディタ拡張です。 また、ネイティブプラグインに対しても完全に対応しております。 (GlitchEnzo/NuGetForUnity に影響を受けましたが一から作ってます。)

 なんか英語の文章を翻訳した感じになってしまった。(-ω- ?)

特徴

  • 非同期を活用した高速な動作
  • 強力な依存関係解決
  • ネイティブプラグインに対する完全な対応
  • わかりやすいUI
  • UPM対応・unitypackageあり
  • GlitchEnzo/NuGetForUnityとの互換性あり

 基本的にはこんな感じです。UI については Visual Studio 付属の NuGet をパク参考にしました。あと、やっぱり NuGet のパッケージ情報(特にアイコン)を取得する速度がネックだったので非同期にしました。(UI に非同期のところを入れるのはちょっと気をつけないといけなかったりする。)

導入法

 UPMを使っても、unitypackage で導入してもいいです。unitypackage の方は dll 化した状態でパッケージにしてます。具体的な方法は Readme を読んでください。

あとがき

 今から Unity のプロジェクトに NuGet のパッケージをインポートするならぜっっっっったいこっちの方がいいです!!!!!サクサク動くし、UI 親切だし、問題なく動くので。(NuGet のパッケージを作る・公開するのであればどうぞ GlitchEnzo/NuGetForUnity をお使いください。)
 感想とか Twitter とかでつぶやいてこのプロジェクト拡散してくれると嬉しいです!

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?