Unity で外部アセットを更新するときに注意すべきこと

Unity の外部アセットについて
皆さん、Unity で開発を行うときに Unity Asset Store は活用されていますでしょうか?筆者は大いに活用しており、現在のプロジェクトにも大量の外部アセットがインストールされています。とても便利な外部アセットですが、最新バージョンが公開されたからといってむやみに更新していると、ある時突然動かなくなることがあります。
そのような状態に陥らないためのおすすめの更新方法について紹介します。
更新したときに動かなくなる原因
一番わかりやすいパターンとしては、アセットの更新で命名や内部処理が変更され、利用方法が変わった場合があります。この場合は更新をロールバックするか、最新バージョンに合わせて実装を変更してあげる必要があります。
しかし、アセット内の処理を参照していなくてもアセットの更新が原因で動作しなくなることがあります。
例えば、バージョンアップでアセットに含まれるあるスクリプトのファイル名が変更された場合、パッケージネージャーから更新してしまうと、既存のスクリプトは削除されず、移動先にスクリプトが追加されてしまいます。そのため、同じスクリプトが複数存在してしまいビルドエラーなどの原因になることがあります。
おすすめの更新方法
では、どうすればよいのか?
更新するアセットの現存ファイルをすべて削除してから再度最新バージョンをインストールすると不要なごみファイルが残りません。
もし外部アセットに直接変更を加えていた場合、この手段はとれずにパッケージマネージャーから更新せざるを得ません。しかし、本来外部アセットに変更を加えるのは設計上好ましくないため、もし、外部アセットに手を加えたい場合は「変更」ではなく「拡張」するとよいです。
プレハブであればプレハブバリアントを作成し、スクリプトであれば継承したうえで、オーバーライドして処理を置き換えると変更に強いプロジェクトになります。
まとめ
以上のように、外部アセットを更新するときは極力既存のファイルを削除したうえで、新規インストールするのがおすすめです。