Indicatorの表示タイミングの仕様に関して

56 views
Skip to first unread message

taku_hsy

unread,
Aug 22, 2021, 5:01:52 AM8/22/21
to 宴ユーザーグループ
宴のバージョン: 宴3.10.2+パッチ
UnityのバージョンとOS: Unity2020.3.16f1 Windows

現在開発中のタイトルにて、
「選択肢を選んだ際に、稀に画面が一瞬暗くなる。同じ場所でセーブロードを繰り返した際も確定的ではない」
というバグに遭遇したため、調査をしたところ、
Fade、CameraやSelection周りではなく、シーンの流れによって備え付けの「Indicator」によるFadeが極めて一瞬だけ表示されるタイミングが発生する、
という不具合でした。

そこで、現状ではIndicatorのフェードを完全透明にし、丸い矢印自体も非表示としてしまう方針なのですが、これは設定として問題ありませんでしょうか?
現状はスタンドアロンのゲームでオンライン的なデータのやり取りも無いタイトルではありますが、
宴の標準的な使い方の中で、状況や低確率でIndicatorの表示を残すことが推奨される場面などが発生しうることはございますでしょうか。
(その際は、一定以上のインターバル以上に時間がかかっている場合のみ表示などの改造を検討したいとは思います…)
Indicator表示に関する仕様面の確認も含めて、ご確認させて頂ければと思います。



マッドネスラボ

unread,
Aug 22, 2021, 5:34:28 AM8/22/21
to 宴ユーザーグループ
はい。問題ないです。
インジケーターはロード中ということを表示するために用意したUIで、宴本体の動作には影響は与えません。

IndicatorIcon.csコンポーネントの表示制御していています。
IndicatorIconの内部では複数のオブジェクトから呼び出されてもよいようにしているのですが、
デフォルトでは一か所からしか呼び出していません。

「Canvas-System UI」オブジェクトの、SystemUiコンポーネント経由で
SystemUi.GetInstance().StartIndicator(obj);
SystemUi.GetInstance().StopIndicator(obj);
という形で、シングルトンで呼び出されます。
実際に呼び出すのはUtageUguiMainGame.csのUpdate中で、ローディングかどうかでStartとStopを切り替えて呼び出しています。

StartIndicatorと、Stopdicatorの両方とも内部でnullチェックをしているので、
「Canvas-System UI」オブジェクトの、SystemUiコンポーネントのIndicatorのインスペクター設定をnullにすればインジケーターは呼び出されなくなります。
ss_1572.png
使わないのであれば、Indicatorオブジェクト自体を削除してしまっても問題ないです。
(削除だけだとmissingの警告がでると思うので、インスペクターにもnullを設定してください)




2021年8月22日日曜日 18:01:52 UTC+9 taku_hsy:

taku_hsy

unread,
Aug 23, 2021, 11:34:19 PM8/23/21
to 宴ユーザーグループ
ご説明ありがとうございます。

MainのUpdateだけという事で、
ロードやゲーム開始時の重めな際にだけ表示されるように調整いたしました。
ありがとうございました。



2021年8月22日日曜日 18:34:28 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages