Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unity Package Managerで自作パッケージを配布する方法

Unity Package Managerで自作パッケージを配布する方法

パッケージ開発の初心者でもわかりやすい、Unity Package Managerで自作パッケージを配布する方法についてまとめました!
Github Actionsを使った自動デプロイについても紹介しています。

yunoda

May 20, 2022
Tweet

More Decks by yunoda

Other Decks in Technology

Transcript

  1. package.jsonの中身 { "name": "com.yunoda.samplesdk", "version": "0.0.1", "displayName": "Sample SDK", "description":

    "This is the sample SDK for how to make the UPM package.", "unity": "2020.3", "unityRelease": "15f2", "keywords": [ "Sample" ], "author": { "name": "yunoda", "email": "[email protected]", "url": "https://www.hikky.life" } } • package.jsonを置いた階 層以下が、パッケージとし て配布されます。 • パッケージ名は逆ドメイン です。
  2. Name ファイル名と一致させる Allow 'unsafe' Code このasmdef内のみ、unsafeなコード を許可する(プロジェクト全体で unsafeを許可しないで済む) Auto Referenced

    オンにすると、Assembly-Csharpか らの参照を許可する。公開しない場 合はオフにする。 No Engine Reference オンにすると、UnityEngineのアセン ブリを参照しなくなる。 transformや GetComponentといったメソッドが 使えなくなるので注意が必要 。 Override References 対象のasmdefが参照できるdllを制 御。オフにするとどんな dllも参照で きてしまいます。 Root Namespace 新規スクリプト作成時に自動でネームス ペースを追加してくれる。 asmdefの設定項目 }
  3. Define Constraints シンボルを設定することで、コード全体を 条件付きコンパイルできる。 コード全体が#if UNITY_EDITORで囲ま れる感じ。 Assembly Definition References

    【重要!】 参照するasmdefを設定す る。 循環参照になるとエラーがでるので注 意。 Use GUIDs オンならIDで、オフならアセンブリ名で参 照先を記録。asmdefのnameを変更する と参照が切れるので、オンを推奨。 Use GUIDsが、オフの場合 Use GUIDsが、オンの場合
  4. npmjsへアップロードする $ npm login Username: # アカウント名 Password: # パスワード

    Email: (this IS public) # 登録したメールアドレス Enter one-time password from your authenticator app: # メールに届く二段階認証パス
  5. トリガーを設定するymlを追加 name: Publish to npm on: release: types: [created] jobs:

    build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: registry-url: 'https://registry.npmjs.org' - run: npm publish --access=public working-directory: Packages/com.yunoda.samplesdk env: NODE_AUTH_TOKEN: ${{secrets.PERSONAL_TOKEN}} • secrets.PERSONAL_TOKENは後 述のトークン設定が必要 • working-directory: からデプロイ 対象にするディレクトリを指定できま す • ファイル名は自由です • ※このymlではリリースを作るたびに 発火します
  6. Add from Diskで開発する場合 • ローカルパッケージ • 別ディレクトリのフォルダをPackages以下にある ように扱う • パッケージのみをリポジトリにアップロードできる

    (=gitURLをシンプルにできる) • パッケージに含めないがgit管理しておきたい ファイルの扱いが難しい • UnityPackage化できない....