LoginSignup
25
23

More than 5 years have passed since last update.

Unity Package Managerについて

Posted at

Unity Package Managerとは

Unity 2018から搭載される予定のパッケージマネージャー。
例えばUnity IAPとかを導入したり、バージョン管理するのを簡単にできる。
多分見たほうが早いので、こんな感じ。
Window -> Package Managerで開ける。

image.png

まあ、普通にパッケージマネージャーですね。便利。

仕組み

Unity 2018でプロジェクトを作ると、 {プロジェクト名}/Package/manifest.json というそれっぽいファイルがある。
試しにAsset Bundle BrowserをPackage Managerからインストールした後に内容を確認してみる。

manifest.json
{
  "dependencies": {
    "com.unity.assetbundlebrowser": "1.5.0"
  }
}

プロジェクトが依存するパッケージがここに記されるような感じ。
RubyGemsにおけるGemfile、PHPのComposerにおけるcomposer.json、node.jsのnpmにおけるmanifest.jsonですね。
というか、npmと一緒な雰囲気ですね。多分内部でnpmが走ってます。

DLされたパッケージの実体は、Macでは ~/Library/Unity/cache/npm/packages.unity.com/* にあります。(npm!)

image.png

パッケージが展開されたものは ~/Library/Unity/cache/packages/packages.unity.com/* にあります。ソースが見たい場合はこっち。

つまり、パッケージは常にグローバルな場所にインストールされます。プロジェクトのディレクトリ内にはmanifest.jsonしかありません。
(わざわざPackageというディレクトリを用意しているのを見ると、プロジェクトディレクトリ以下にインストールするオプションもそのうち用意されそうな予感)

プロジェクトを開いた時にmanifest.jsonに書かれたパッケージが自身のマシンにインストールされていない場合、自動的にインストールされます。
そのため、外部(Githubなど)から持ってきたプロジェクトでも自動的にパッケージの依存関係が解決されインストールされるようになっています。

ちなみに、プロジェクトを開いた状態でmanifest.jsonを直接編集して保存すると、勝手に再読込してパッケージをインストールしてくれます。

自作パッケージを配布したい場合

多分そのうち自作パッケージが配布できるようになりそうな感じなので、パッケージの作り方について。
このあたりを読めば良さそう。
https://docs.unity3d.com/Packages/com.unity.package-manager-ui@1.8/manual/index.html#PackManManifestsPackage

まとめ

  • Unity 2018からパッケージマネージャーが搭載される
  • manifest.jsonに依存関係が記述される
  • プロジェクト起動時に自動的にmanifest.jsonを読み込み、依存するパッケージをインストールしてくれる
  • manifest.jsonを直接編集すると、自動的に再読込してパッケージをインストールしてくれる
  • パッケージは ~/Library/Unity/cache/npm/packages.unity.com/* にインストールされる
  • パッケージの中身は ~/Library/Unity/cache/packages/packages.unity.com/* に展開される
25
23
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
25
23