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(2) | Unity

2019年02月07日

[Unity] UISimpleAlert (アセット) をリリースしました!

この度、Unityのアセットストア(Asset Store)に初めてアセットをリリースすることができました!
「UI Simple Alert」というアセットで、アラートやプログレスバーを手軽に表示できるものになっています。

単純なアラートやプログレスバーでもゼロから作るのが大変なので、パッケージにして色々なアプリで流用していました。自分で使っていて便利だったので、アセットストアに出してみよう!となりました。

構想から半年、何度もリジェクトをくらいましたが挫けずにリリースまでこぎつけました。
よろしければ、使ってみてくださいm(_ _)m

アラートのサンプル:
uisimplealert1.jpg

プログレスバーのサンプル:
uisimplealert2.jpg

アセットストア(Asset Store):
https://assetstore.unity.com/packages/tools/gui/uisimplealert-71199
posted by be-style at 22:11| Comment(0) | Unity