---
title: Package Manager活用術
tags: 
author: [Annulus Games](https://convert.docswell.com/user/annulusgames)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/D7YGV2PN7M.jpg?width=480
description: u1w共有会#10に登壇した際の資料。公開してなかったことに気づいたのでこちらに上げときます。
published: March 01, 24
canonical: https://convert.docswell.com/s/annulusgames/5W178G-package-manager
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/D7YGV2PN7M.jpg)

Package Manager活用術
unity1week online共有会 #10


# Page. 2

![Page Image](https://bcdn.docswell.com/page/VENGM85VJ8.jpg)

自己紹介
Annulus Games (@AnnulusGames)
- UnityでSTG作ってる高校生です
- 普段はこんな感じのゲームを作ってます


# Page. 3

![Page Image](https://bcdn.docswell.com/page/Y79WNKYV73.jpg)

今回作ったゲーム「REWIND」
- 「巻き戻す」操作を活用して
ゴールを目指すパズルゲーム
- 倉庫番+αのゲームシステム
- グリッド移動用のライブラリを作成
(そのうち公開するかも)


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G78NKR64JD.jpg)

ゲーム制作には時間がかかる…!


# Page. 5

![Page Image](https://bcdn.docswell.com/page/L7LPZK9VJR.jpg)

TODO
□ コードを書く
□ グラフィックを描く
□ 効果音・BGM
□ レベルデザイン
□ etc…
これら全てを1週間でやらねばならない


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4EM4V2ZNJW.jpg)

コードを使い回そう
- 「また同じようなコード書いてる…」
- 以前書いたものを再利用しよう
- 機能ごとに分割してライブラリ化
しておくと便利
ユーザーの入力の取得
キャラの移動
UIの制御
ユーティリティ


# Page. 7

![Page Image](https://bcdn.docswell.com/page/PERW2M64J9.jpg)

どうやってライブラリを管理する…?


# Page. 8

![Page Image](https://bcdn.docswell.com/page/P7XPDVMZJX.jpg)

例えば…
プロジェクトA
ScriptA.cs
ScriptB.cs
ScriptC.cs
u1w用のプロジェクト
Copy &amp; Paste
ScriptA.cs


# Page. 9

![Page Image](https://bcdn.docswell.com/page/37KDXQGVED.jpg)

全部まとめて管理したい


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LJ3R5P5QE5.jpg)

パッケージ化しよう
パッケージ A
パッケージを用意→
プロジェクトA
ScriptA.cs
ScriptB.cs
ScriptC.cs
ScriptA.cs
パッケージを参照
u1w用のプロジェクト
ScriptA.cs


# Page. 11

![Page Image](https://bcdn.docswell.com/page/8JDYDLDWJG.jpg)

Package Managerを使おう


# Page. 12

![Page Image](https://bcdn.docswell.com/page/VEP6X2XX78.jpg)

Package Managerとは
- プロジェクト内のパッケージの
管理を行う機能
- アセットの追加やGitリポジトリ
との連携も可能
- Packages以下に置かれるため
Assetsフォルダが整理できる
- 自作パッケージも使用可能！


# Page. 13

![Page Image](https://bcdn.docswell.com/page/27V3LDL3JQ.jpg)

実際に作ってみよう


# Page. 14

![Page Image](https://bcdn.docswell.com/page/5JG3XYXYEL.jpg)

1. 新規プロジェクトを作成
- プロジェクト名は適当でOK
- 必須ではないが、Package一つ
につきプロジェクト一つの方が
管理が楽


# Page. 15

![Page Image](https://bcdn.docswell.com/page/47Q58M86EP.jpg)

&lt;root&gt;
2. フォルダを配置
├── package.json
├── README.md
├── CHANGELOG.md
├── LICENSE.md
- 公式が推奨するディレクトリ構成に
├── Third Party Notices.md
├── Editor
│ ├── [company-name].[package-name].Editor.asmdef
沿ってフォルダを配置
- なんか大変そう…
- ただしこれは配布用のもの
│ └── EditorExample.cs
├── Runtime
│ ├── [company-name].[package-name].asmdef
│ └── RuntimeExample.cs
├── Tests
│ ├── Editor
│ │ ├── [company-name].[package-name].Editor.Tests.asmdef
│ │ └── EditorExampleTest.cs
│ └── Runtime
│
├── [company-name].[package-name].Tests.asmdef
│
└── RuntimeExampleTest.cs
├── Samples~
│
├── SampleFolder1
│
├── SampleFolder2
│
└── ...
└── Documentation~
└── [package-name].md


# Page. 16

![Page Image](https://bcdn.docswell.com/page/KE492V2MJ1.jpg)

ディレクトリ構成 (最低限)
&lt;root&gt;
├── package.json
├── Runtime
←ここにScriptを突っ込む
│ ├── [company-name].[package-name].asmdef
│ └── RuntimeExample.cs
├── Editor （エディタ拡張しないなら無くてもいい）
│ ├── [company-name].[package-name].Editor.asmdef
│ └── EditorExample.cs


# Page. 17

![Page Image](https://bcdn.docswell.com/page/L71KM3MYEG.jpg)

3. package.jsonを配置
- package.jsonという名前で
jsonファイルを作成
- パッケージ名やバージョン、作者、
依存関係などの情報を記述


# Page. 18

![Page Image](https://bcdn.docswell.com/page/G7WD3P31E2.jpg)

package.jsonの内容 (最低限)
{
&quot;name&quot;: “com.annulusgames.upm-sample&quot;,
&quot;displayName&quot;: &quot;UPM Sample&quot;,
&quot;version&quot;: &quot;1.0.0&quot;,
&quot;unity&quot;: &quot;2019.4&quot;,
←正式名(逆ドメイン)&amp;表示名
←パッケージのバージョンと必要なUnityのバージョン
&quot;author&quot;: {
&quot;name&quot;: “Annulus Games”
←作者名
},
&quot;description&quot;: “UPMのテスト&quot;,
←説明があればここに
&quot;dependencies&quot;: {
&quot;com.unity.some-package&quot;: &quot;1.0.0&quot;
}
}
←依存するパッケージがあればここに


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4JZGVKVX73.jpg)

4. asmdefを配置
- 待ってasmdefって何？


# Page. 20

![Page Image](https://bcdn.docswell.com/page/YE6Y5Q5PJV.jpg)

Assembly Definitionとは
- C#のビルドファイル（アセンブリ）を分割して
出力する
- パッケージ化の際には必ず配置する
▲こんなやつ


# Page. 21

![Page Image](https://bcdn.docswell.com/page/GE5GYRYPE4.jpg)

とりあえず置いてみよう
- Create &gt; Assembly De nitionで作成
- Runtimeフォルダ(とEditorフォルダ)に
asmdefをそれぞれ配置
fi
- (依存関係とプラットフォームを設定)


# Page. 22

![Page Image](https://bcdn.docswell.com/page/972YGDGZ7R.jpg)

依存関係の設定
- asmdefを配置した場合、依存関係を
明示的に設定しなければならない
- 使いたいアセンブリのasmdefを
Assembly De nition Referencesに
突っ込めばOK
fi
▲ここに注目


# Page. 23

![Page Image](https://bcdn.docswell.com/page/DJYGV2VNJM.jpg)

プラットフォームの設定
- 基本そのままでOK
- エディタ拡張を使う場合のみ、
Editor以外のチェックを外す


# Page. 24

![Page Image](https://bcdn.docswell.com/page/V7NGM8MVE8.jpg)

完成！


# Page. 25

![Page Image](https://bcdn.docswell.com/page/YJ9WNKNVJ3.jpg)

使ってみよう
- 新規プロジェクトを作成
- Package Managerを開く
- 左上の+ボタンから
「Add package from disk…」
- 先ほど作ったパッケージの
package.jsonファイルを選択


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJ8NKRK4ED.jpg)



# Page. 27

![Page Image](https://bcdn.docswell.com/page/LJLPZKZVER.jpg)

自分で作るのは大変…


# Page. 28

![Page Image](https://bcdn.docswell.com/page/47M4V2VNEW.jpg)

OSSを活用しよう
- Githubなどで様々なUnity向けのOSSが公開されている
- 多くはPackage Managerから導入が可能
- 左上の+ボタンから
「Add package from git URL…」
https://github.com/AnnulusGames/LucidRandom.git?path=/Assets/LucidRandom
リポジトリのURL
package.jsonのパス


# Page. 29

![Page Image](https://bcdn.docswell.com/page/P7RW2M24E9.jpg)

オススメのOSSを紹介！


# Page. 30

![Page Image](https://bcdn.docswell.com/page/PJXPDVDZEX.jpg)

uPalette
- プロジェクト内の色を一元管理&amp;
一括変更が可能なライブラリ
- エディタ上からImageやButton
などの色を管理できる
- Repository
https://github.com/Haruma-K/uPalette


# Page. 31

![Page Image](https://bcdn.docswell.com/page/3JKDXQXV7D.jpg)

UniRx / UniTask
- イベント処理・非同期処理を最高の
パフォーマンスで処理できるライブラリ
- 学習コストは高いが、使いこなせれば
超強力
- Repository
https://github.com/neuecc/UniRx
https://github.com/Cysharp/UniTask


# Page. 32

![Page Image](https://bcdn.docswell.com/page/LE3R5PRQ75.jpg)

In-game Debug Console
- ゲーム内でConsoleを確認できる
ライブラリ
- デバッグ用のコマンドを
登録することも可能
- サクッとデバッグしたい時に便利
- Repository
https://github.com/yasirkula/UnityIngameDebugConsole


# Page. 33

![Page Image](https://bcdn.docswell.com/page/8EDYDLYWEG.jpg)

Lucid Audio
- オーディオの再生を簡単に行うための
ライブラリ
- メソッドチェーンを用いた記述方式
- コールバックやGameObjectへの
- Repository
https://github.com/AnnulusGames/LucidAudio
紐付けなどの高度なオプション
▲DOTweenみたいに書ける


# Page. 34

![Page Image](https://bcdn.docswell.com/page/V7P6X26XJ8.jpg)

まとめ
- 機能ごとにライブラリを作ろう
- ライブラリ管理にはPackage Managerを使おう
- OSSを活用しよう
→ 効率的にゲームを作ろう！


# Page. 35

![Page Image](https://bcdn.docswell.com/page/2JV3LD33EQ.jpg)

Thank you for listening!


