2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unityパッケージをローカル化する

Posted at

なんでそんなことするの?

クラウドサービス「Box」のAPIをUnityで利用する必要がありましたが、このAPIにはBoxという名前空間が含まれています。一方で、UnityのVisual Effect Graphパッケージ内のVFXUIDebug.csにはUnityEngine.UIElements.Boxが使用されており、この二つが名前空間の競合を引き起こしてしまいました。

そこで、競合を解消するためにVFXGraphパッケージのコードを編集する必要がありました。しかし、Libraryフォルダ内のパッケージはGitで共有されず、またUnityのアップデートで上書きされる可能性もあります。そこで、VFXGraphパッケージをローカル化し、競合を解消する方法を取ることにしました。

正直パッケージ側で競合しないようになんとかしてほしい( ;∀;)

Unityパッケージのローカル化手順

1. Library/PackageCache から Packages フォルダにコピー

まず、競合が発生している Visual Effect Graph パッケージを Library/PackageCache フォルダから Packages フォルダにコピーします。これにより、UnityはPackagesフォルダ内のパッケージを優先して参照するようになります。

2. 競合の解消とコードのカスタマイズ

次に、コピーしたパッケージのコード内で競合を解消するための編集を行います。具体的には、VFXUIDebug.cs内でUnityEngine.UIElements.Boxを明示的に指定して競合を回避します。編集が完了したら、Unityを再コンパイルすることで修正が適用されます。

ローカルパッケージのメリットと注意点

メリット

  • 直接編集が可能
    パッケージ内のコードをプロジェクトに合わせて直接編集できるため、細かな調整や競合の解消が可能です

  • アップデートで上書きされない
    パッケージがローカルにあるため、Unityのアップデートで勝手に上書きされる心配がなくなります

注意点

  • 更新管理の手間
    ローカルパッケージは手動で更新する必要があるため、Unity公式の最新バージョンがリリースされた際には、手動で再度パッケージを取得・編集する必要があります

まとめ

Unity標準パッケージをローカル化することで、プロジェクトに合わせた競合解消や独自のカスタマイズが可能になります。この方法は、特に外部ライブラリとUnityの名前空間が競合する場合や、パッケージの一部を調整したい場合に有効です。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?