2020年03月28日

[Unity] Unity2019.3.6 にバージョンアップしたら Unable to add package [com.unity.render-pipelines.universal@7.3.1]

Unity2019.3からLWRP(軽量レンダーパイプライン)からURP(ユニバーサルレンダーパイプライン)に変更されるということで、プロジェクトを更新せねば!で始まった移行作業。

Unityからの告知:
https://blogs.unity3d.com/jp/2019/09/20/how-the-lightweight-render-pipeline-is-evolving/

LWRP -> URP への移行手順:
https://docs.google.com/document/d/1Xd5bZa8pYZRHri-EnNkyhwrWEzSa15vtnpcg--xUCIs/edit

まだ移行は完了していないけど、1つのエラーを解消できたのでメモ。

Unity2019.3.6 にバージョンアップしてプロジェクトを更新したところ、
Unity起動後にエラーが出るようになってしまった。

---------------------------------------------------------
Cannot perform upm operation: Unable to add package [com.unity.render-pipelines.universal@7.3.1]:
One or more dependencies could not be added to the local file system:
com.unity.render-pipelines.core: connect ETIMEDOUT 23.194.79.92:443 [NotFound]
UnityEditor.EditorApplication:Internal_CallUpdateFunctions() (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:310)
---------------------------------------------------------

Package Managerを開いて使っていたパッケージを更新しても解消せず。

スクリーンショット 2020-03-28 15.04.03.png

よく見ると、Universal RPのバージョンが「7.1.8」のままで、エラーに書いてある「7.3.1」ではないことに気づく。
Package Manager > Universal RP の左側にある矢印をクリックして開くことができて、
そこで「7.3.1」にアップデートすることができた。

スクリーンショット 2020-03-28 15.04.20.png

見逃してたー。
posted by be-style at 15:18| Comment(0) | Unity

2019年02月19日

[Unity] ビルドエラー(duplicate symbol _UnityAdsSetMetaData in:)とかの解決方法

Unity2018.2からUnity2018.3に上げ、プロジェクトもそれに合わせて
更新がかかって、エディターで問題なく動いたので、いざiPhoneで動かそうと
Xcodeのプロジェクトを吐いたところ、以下のビルドエラーが出てしまいました。

※長いので一部のみ抜粋
----------------------------------
duplicate symbol _UnityAdsSetMetaData in:
/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-adkzvnjbwnmurigbllxsqtzsreyi/Build/Intermediates.noindex/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/arm64/UnityAdsUnityWrapper-93c2ad48068dacbe184311ba522ef4791b259c6a734020a5be22b528a7e5696d.o
/Users/hogehoge/Library/Developer/Xcode/DerivedData/Unity-iPhone-adkzvnjbwnmurigbllxsqtzsreyi/Build/Intermediates.noindex/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/arm64/UnityAdsUnityWrapper-93c2ad48068dacbe184311ba522ef479f3f3b1a13002e9ef587ebcbda266a24e.o
----------------------------------

たぶん、「UnityAdsUnityWrapperの中身が重複してるよ」という事だと思います。
「duplicate symbol」という文言が入るとだいたいそう。

色々調べた結果、原因は、
「以前Asset StoreからインポートしたUnityAds」と「PackageManagerから
インポートしたUnityAds」で、「UnityAds.framework」が重複している

でした。

↓Pacage ManagerからインポートしたUnityAdsが入っている場所
unity_package_ads.png

Asset StoreからインポートしたUnityAdsは、
Assets > Plugins > iOS
の方に入っていました。
念のため、Assets配下にある「UnityAdsに関連するファイルを全て削除」しました。

この後、Unityから「置き換え(Replace)」でビルドしてXcodeプロジェクトを吐き出したところ、
無事Xcode側でもビルドが通りました。

Unityのデフォルト機能は、今後PackageManagerからインポートする様に統一しよう。。。
posted by be-style at 02:51| Comment(0) | Unity

2019年02月08日

[Unity] プレファブが壊れた(Prefab may be broken)ときの1つの解決方法(Unityのアップデート後)

プロジェクトで使うUnityのバージョンを2018.2.20f1に上げてからの出来事です。

同じプロジェクトでも、使うUnityのバージョンの上げ下げを行うと
プロジェクトを開くときに「プロジェクトをUnityに合わせて更新するよ」
みたいなメッセージが冒頭で表示されます。

これまで「はい」を選択して、気にしていなかったのですが、
Unity2018.2.20f1に上げてから問題が起こりました。

プロジェクト画面にあるプレファブをヒエラルキー画面に
持ってこよう(ドラッグ)としたところ、

------------------------------------
Unable to instantiate prefab. Prefab may be broken.
UnityEditorInternal.InternalEditorUtility:HierarchyWindowDrag()
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
------------------------------------

とコンソール画面に警告が表示され、ヒエラルキー画面に既存の
プレファブを置くことができませんでした。
よく見ると、プロジェクト画面のプレファブのアイコンがいつもと
違っていました。

prefab_broken.png

プレファブを編集したかったので困ってしまったのですが、
なんと、「プロジェクト画面の中でプレファブの名前を変える
だけで直りました。

↓適当な名前にしてから、ImageDividedScreen に戻したらアイコンが正常(?)になった

prefab_fixed.png

プレファブが壊れる理由は色々ありますが、もしUnityのアップデートが原因のときは
こちらを試してみると良いかもしれません。
posted by be-style at 21:52| Comment(1) | Unity