Unity自体のバグが原因で生じる不具合


ここでは、Unity自体のバグが原因で生じる不具合についてまとめます。
宴はUnity5.5.0以上のバージョンで動作するようにしていますが、Unity自体にバグがある場合はその機能は動作しなくなってしまいます。
安定性を求めるのであればLTS(ロングタイムサポート)というバージョンを使うことをお勧めします。
Unityは、その年の最後のバージョン(2018なら2018.4)がLTSとなり、安定版となっています。
LTSについて、詳細はこちらです。Unity の新しいリリースプラン:TECH ストリームと長期サポート(LTS)ストリームの導入
以下、特定のバージョンのUnityで生じる不具合をまとめてあります。

Unity2019.1、Unity2019.2でVideoコマンド

Unity2019.1では、Videoコマンドによる動画の再生ができません。(音声だけは再生可能です)
Unity2019.1では、Defaultレイヤーを描画対象としないカメラにビデオが描画できないというバグがあるためです。
Unityにバグ報告したところ、Unity2019.3.0a3(αの検証バージョン)では修正済みとのことです。
他にも、カメラにViewPortRectを設定してあると動画を正しい位置に描画ができなくなるバグが発生しています。
Unity2019のVideo機能には色々とバグがあるようなので、Unityがそれらを修正するまで宴のVideoコマンドも使用できません。

追記 Unity2019.2

2019/7/30にUnity2019.2がリリースされました。
上記のビデオの不具合のうち「描画できない」というのは修正されているのですが、
「カメラにViewPortRectを設定してあると動画を正しい位置に描画ができなくなるバグ」はまだ未修整のようです。
そのため、Unity2019.2でもビデオコマンドは正常に動作しません。
こちらもすでにUnityに報告済みですが、まだ修正の目途が立っていないようです。
バグの詳細はUnity公式のIssueTrackerで確認できます。

Unity5.6.0~Unity2017.1のAndroid上でフェードイン、アウトやイメージエフェクト表示がおかしくなるバグ

Androidの一部の端末で、フェードアウトやイメージエフェクトのときに画面が正常に描画されなくなる不具合が発生します。
これはUnity自体のバグのため、宴では解消できません。
バグの詳細はこちら
https://issuetracker.unity3d.com/issues/android-onrenderimage-function-is-called-before-the-camera-is-rendered

通常の宴の使い方では発生しないようですが、3Dモデルの描画のために3Dカメラ用のカメラを追加し、レターボックス処理のためにViewportRectで描画領域を限定させると発生します。
宴のサンプルシーンはこの構成であるため、サンプルシーンをビルドすると発生します。

回避策としては、SpriteやUIなどの2Dカメラのほうの「ClearFlag」を「Depth only」にすることだそうですが、
極力Unity2017.2以降にアップデートしてください。

Unity5.6.0~Unity2017.1でMac版のUnityで表示がおかしくなるバグ

Unity5.6.0~Unity2017.1のMac版のUnityで、「前の画面の一部が残り続ける」「会話シーンで使うと背景が真っ黒になる」などのバグが起きることがあります。
これはUnity公式機能が原因のバグで、宴側では対応できません。
Windwos版のUnityでは発生しないため、そちらを使っていただくのが一番ですが、
以下のいずれかの対策をすることでMac版でも回避可能です。

対策その1

表示がおかしくなったらGameViewウィンドウのサイズを変える。

ただし、これは手動で毎回しないといけないので面倒かもしれません。

対策その2

最初に設定した画面比率(デフォルトでは4:3)でGameViewのアスペクト比を固定する。

対策その3 

レターボックス(余白を黒で塗りつぶす)をやめて、スクリーンサイズにあわせてゲーム画面のサイズを可変にする方法を使います。
やり方はこちらです。 カメラの描画範囲を可変に設定
ただし、これはゲームの仕様も変えることになるので、その点は注意してください。

バグの詳細

一応原因の詳細も記述しておきます。
このバグの原因はこちらになります。
https://issuetracker.unity3d.com/issues/camera-depth-is-ignored-when-setting-both-cameras-viewport-other-than-0-0-1-1
どういうバグかというと、「カメラのViewPortRectをデフォルト以外の設定にしていると、まともに描画されなくなる」という不具合です。
ViewPortRectとは、大ざっぱに言うと「カメラの描画結果を画面のどこに描画するか」という設定です。
この部分の設定を調整することで「画面の一部にのみ描画をする」ということが可能です。
宴では「レターボックス機能」のためにこの機能を使っています。
通常画面の手前に黒いオブジェクトなどを置いてもレターボックスは可能なのですが、その場合は無駄な描画負荷がかかりますので、ViewPortRectを使っています。
Mac版のUnityはこのViewPortRect機能を使っているとバグってしまうため、宴の描画全体がバグってしまっています。
Mac版のUnityのうち、Unity5.6、Unity2017で発生するバグのようですが、バージョンの詳細は不明です。
Unityには既に報告済みで、アップデート(おそらくUnity2017.2)で修正予定とのことです。
β版(Unity2017.2b7)で確認したところ修正されているようでした。
Unity2017.2がリリースされるまでは、上記の対策のように
「UnityのGameViewに何らかのリセット処理をかける」か、「宴で設定したアスペクト比とGameViewのアスペクト比が一致するようにするしてレターボックスを無効化する」
ということをやってみてください。

Unity5.6.0

Unity5.6.0にはバグがあるので、宴3.0.0~3.0.4は動作しません。
宴を3.0.5以上にアップグレードしてください。

Canvasの入れ子構造をなくす

Unity5.6.0のバグで、Canvasが入れ子になっている場合は入力が正常に動作しなくなります。
宴3.0.5以上で新規に作成した場合は問題ありません。
宴3.0.0~3.0.4で作成した場合は、以下のようにしてCanvasが入れ子になっている部分を修正してください。


原因は、UnityのバグなのでUnityの修正を待つのが良いかもしれません。
Unity5.6のバグに関しては詳細はこちら