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

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

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

まえがき

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

背景

 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 とかでつぶやいてこのプロジェクト拡散してくれると嬉しいです!

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
2
Help us understand the problem. What are the problem?