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

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

yunoda
May 20, 2022

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化できない....