FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム »Unityバグ
このページの記事一覧

【Unity】EventTrigger のコールバック引数変わった?  


 先に結論を述べておくと、どうやらバグだったらしい。

 Unity2018.4.10f1 を使っているとき、ふとアタッチしてある EventTrigger のコールバックが "<Missing~ >" になっていて、原因がわからなかったのだが、Unity2018.4.11f1 にアップデートしたら直った。

(※) Unity 2018.4.8f1 - 2018.4.11f1 / Windows10(x64) で確認

 具体的に言うと、バージョンによって以下のように、コールバック引数の表示が違う。
 
●Unity2018.4.8f1 以前(引数が BaseEventData)


●Unity2018.4.9f1 ~ 4.10f1(引数が無い?!)


●Unity2018.4.11f1(引数が BaseEventData)



 Unity2018.4.11f1 の Release Note を見てみたが、明示的に EventTrigger とは書いてないので、

・UI: Fixed the UnityEvent property drawer showing UnityEvents in private properties correctly. (1178687, 1186175)

の関連の気がする。

 まぁ、このバグがあるとインスペクタから Dyanamic な引数でメソッドを登録できないので、早めに Unity2018.4.11f1 以降にアップデートした方が良いだろう。





(関連記事)
【Unity】【C#】UnityEvent, Action, delegate, interface でのコールバック実装方法とインスペクタでの登録
【Unity】【Android】2019.2.0 でパッケージ名(Bundle Identifer)でアンダーバーが使えない
【Unity】Unity2018.3.2 にアップグレードすると見た目がおかしくなることがある
【Unity】Unity2018 でビルドエラー「CommandInvokationFailure: Gradle build failed.」が出る


関連記事
スポンサーサイト



category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityトラブルシューティング  Unityバグ 
tb: 0   cm: --

【Unity】【Android】2019.2.0 でパッケージ名(Bundle Identifer)でアンダーバーが使えない  


 ちょっと試しに Unity 2019.2.0f1 で Android ビルドしてみようと思ったら、以下のエラーが出た。

UnityException: Package Name has not been set up correctly
Please set the Package Name in the Player Settings. The value must follow the convention 'com.YourCompanyName.YourProductName' and can contain alphanumeric characters and underscore.
Each segment must not start with a numeric character or underscore.
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

 google翻訳にかけると以下のようになる。

UnityException:パッケージ名が正しく設定されていません
プレイヤー設定でパッケージ名を設定してください。 値は「com.YourCompanyName.YourProductName」の規則に従う必要があり、英数字とアンダースコアを含めることができます。
各セグメントは、数字またはアンダースコアで始まってはいけません。

 しかし、なぜかアンダーバー[アンダースコア]("_")を入力しても、[Enter] で確定しようとすると消えてしまう。どうやらバグのようだ。入力のバリデーションでカットされてしまってる気がする。

 既にリリースしているアプリで、アンダーバーを含むパッケージ名を持っているアプリは少し困るね。削除されてしまうと、端末では違うアプリとして認識されてしまう。

 まぁ、初期バージョンでは、不具合によく出くわすのは仕方ないけどね。だが、Android ではパッケージ名は重要な情報なので、バグFixされるまでは、しばらく Unity 2019.2 にはアップグレードしない方が良いかも知れない(※他のプラットフォームも Bundle Identifer を使うものは同じ)。



[8/11 追記]
 Unity公式のバグレポートに出しておいたら、確認(バグ再現)できたので、今後のバージョンで修正されるという旨の返信メールが来ました。いずれ修正されるでしょう。






(関連記事)
【Unity】Unity2018 でビルドエラー「CommandInvokationFailure: Gradle build failed.」が出る
【Unity】IncrementalCompiler でのエラー:Unloading broken assembly Packages/com.unity.incrementalcompiler/Editor/Plugins/Unity.PureCSharpTests.dll, this assembly can cause crashes in the runtime


関連記事

category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityトラブルシューティング  Unityバグ 
tb: 0   cm: --

【Unity】Unity2018.3.2 にアップグレードすると見た目がおかしくなることがある  


 原因は不明なのだが、Unity2018.3.1 以前のプロジェクトを Unity2018.3.2 にアップグレードしたら、見た目がガタガタになった…。えっ?何これ…?


●髪など揺れものがガタガタになってる…

(※) Unity 2018.3.2f1 / Windows10(x64) で確認

 一応 Git で管理してたので、以前のバージョンに戻って調べてみたら、どうやら Quarity Settings(Edit>Project Settings...>Quarity)のデフォルトが(緑色のチェックマーク)、なぜか全て「Very Low」になっていた…。


(左) Unity2018.3.1 のデフォルト / (右) Unity2018.3.2 へのアップグレード変換失敗?



 とりあえず、デフォルトを以前の状態に戻して(手動でやるなら、下の逆三角アイコンを押して、各プラットフォームの Quarity を選択する)、ビルドしてみたら、元に戻った。


●髪がサラサラになった


 アップグレード変換失敗を失敗したのか、何らかでデータが飛んでしまったのかわからないが、設定を戻せば直るようだ。

 ちなみに、新規プロジェクトでは、以前と同じデフォルト設定だった。他のプロジェクトでアップグレードしてみたけど、同じように「Very Low」になってしまうものがあった。PC は起動時にクオリティ選べるが(ダイアログのプルダウンもデフォで「Very Low」になる)、スマホではスペックにより自動となるので、自分で選べないので困る。う~ん、これは Unity2018.3.2 特有のバグっぽいな…。





(関連記事)
【Android】【Java】パーミッションの付与(許可)のチェックと要求をする
【Unity】Androidのトーストやダイアログ、通知、音声認識、ハード音量操作など基本的な機能を使えるプラグインを作ってみた
【Unity】AssetStore版 FantomPlugin のセットアップ
【Unity】Unity2018 でビルドエラー「CommandInvokationFailure: Gradle build failed.」が出る
【Unity】【C#】モバイルビルド中の警告:Game scripts or other custom code contains OnMouse_ event handlers.~ を消す


関連記事

category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityトラブルシューティング  Unityバグ  VRM  VRoid 
tb: 0   cm: --

【Unity】Unity2018 でビルドエラー「CommandInvokationFailure: Gradle build failed.」が出る  


 Unity2018 はどうも内部的なシステムの開発要件が上がったのか、インストして既存のプロジェクトをビルドしてみようとしたら、いくつかエラーが出たので備忘録。ちなみに 2017.4.2f2 までは何のエラーも出なかった状態からなので、開発環境によってはサードパーティの SDK など(Java SDK, Android SDK/NDK, Android Studio 等)のアップデートも必要になるかも知れない。結構大変なので、開発中であったり、Unity2018 の必要がないのなら、アップデートは先送りした方が良いかもね。またプラグインも使ってみようと思ったらビルド中にエラーが出たので、その辺りの対処方法も書いておこう。



(※) Unity 2018.1.0f2 / Windows10(x64) / Galaxy S7 Edge (Android 7.0) で確認



■新規プロジェクトでいきなりエラー「ArgumentException: Value does not fall within the expected range.」が出る

 インストして起ち上げたら、いきなり出たのがこれ(笑)。ググったらすぐに対処法が出てきたので正確にはメッセージは覚えてないが、要するにインストールされている Visual Studio 2017 のマイナーバージョンが合ってなかったらしい(?)。なので、最新版にアップデートすればエラーは出なくなる

Visual Studio Tools for Unity (最新版をインストール)
Error with Unity and Visual Studio Bridge (VS project not updating when new scripts added)



■「CommandInvokationFailure: Gradle build failed.」以降のエラーメッセージに「failed to find Build Tools revision 28.0.0」のようなバージョン番号が出ている。


 これはどうやらインストしてある Android Studio(ないし SDK)にある Build Tools のバージョンが合ってない(?) みたいなのだが、私の場合「28.0.0rc2」が入っていたのにダメだった(SDK Manager で "28.0.0" を探したが、なぜか "~rc1", "~rc2" しか無い(笑))。仕方がないので試しに "28.0.0rc2" を削除して「27.0.3」を残したらエラーが出なくなった(Android Studio で「Tools>SDK Manager」を開き、「SDK Tools」タブでダイアログの下の方にある「Show Package Details」にチェックを入れると細かいバージョンを追加・削除できる)。ただこれはかなりいい加減な応急処置なので(笑)、バージョンが上がって安定版が出たら設定し直したほうが良いかも知れない。





■「CommandInvokationFailure: Gradle build failed.」以降のエラーメッセージに「Cannot read packageName from~(パス)\AndroidManifest.xml」と出る。

※このエラーは Unity2018.1.7f1 で fix されたようです。
Unity 2018.1.7f1 リリースノート
[ANDROID] $APPLICATIONID TAG IN A MANIFEST CAUSES GRADLE BUILD TO FAIL


 これはプラグインを使ってみようと思ったら出た。普通にビルドする分には関係ないかも知れない。「AndroidManifest.xml」をオーバーライドしている場合、Unity2018 の仕様(バグ?)なのか、「Build Settings...」で「Build System」を「Gradle」にしていると、でパッケージ名が追加されないようだ(Unity2017.4.2f2 までは自動で追加される)。なので独自に「AndroidManifest.xml」を設定している場合、「manifest」タグに「package」属性を手動で追加しておく必要がある。「package」にはプロジェクトのパッケージ名「Edit>Project Settings>Player>Other Settings>Identification>Package Name」と同じものを書いておく。または「Build System」を「Internal」にするとエラーは出なくなる(ビルドできるようになる)。

● "AndroidManifest.xml" に追加する部分(※"package" はプロジェクトのパッケージ名にする)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.productName">
・・・(略)・・・
</manifest>

●PlayerSettings

※パッケージ名(com.company.productNam)は必ずアプリ固有の名前(ID)として設定する必要アリ。

または「Build System」を「Internal」にするとエラーは出ない


 当プラグインでもエラーが出たときは、上記の方法でビルドできるようになる(※スマホ [Android7.0] でも動作確認済み)。







(関連記事)
【Unity】AssetStore版 FantomPlugin のセットアップ
【Unity】【C#】モバイルビルド中の警告:Game scripts or other custom code contains OnMouse_ event handlers.~ を消す
【Unity】アイコン画像のフォーマット警告:Compressed texture XXX is used as icon. This might compromise visual quality of~ を消す
【Unity】5.6 の Canvas の警告:Shader channels Normal and Tangent are most often used with lighting~ を消す
【Unity】InitializeUnityExtensions: Must have a valid path for the plugin [XX] (XX:番号) というエラーの修正方法


関連記事

category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: Unityトラブルシューティング  Unityバグ  Unityライブラリ  Unityプラグイン  FantomPlugin 
tb: 0   cm: --


プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR