ページ 11

【解決済み】画面を強制的に真っ暗にしたい

Posted: 2018年10月04日(木) 18:07
by ねこちゃ
イベント発生時に画面上のウィンドウ(プラグインのHPゲージや時計やピクチャ等)を全部消したいのですが現状それぞれのプラグインにある表示消去コマンドにて消しているのですが各々タイムラグがあり一斉に消すことができません
そこで画面を暗転させて見えない状態にしてから消去コマンドを走らせて処理が終わってから再表示させようとしているのですがうまく行きません
画面のフェードアウトや黒のピクチャで塗りつぶしたりしても画面にウィンドウが表示されたまま残ってしまいます
画面表示を強制的に真っ暗(何も表示しない)状態にすることはできませんか?
それかできれば現在の画面表示を固定し処理が終わってから任意のタイミングで画面を再表示する方法ありませんか?
なにかいい方法ありましたらお願いします

Re: 画面を強制的に真っ暗にしたい

Posted: 2018年10月04日(木) 18:53
by 奏ねこま
以下、スクリプトで実行。

■画面全体を非表示(真っ暗になる)
SceneManager._scene.visible = false;
■画面表示をもとに戻す
SceneManager._scene.visible = true;

■ウインドウをすべて非表示
SceneManager._scene._windowLayer.visible = false;
■ウインドウ表示をもとに戻す
SceneManager._scene._windowLayer.visible = true;

■画面全体を透けさせる(0.5の部分は0.0~1.0まで指定可能。デフォルトは1.0)
SceneManager._scene.alpha = 0.5;
■すべてのウインドウを透けさせる(同上)
SceneManager._scene._windowLayer.alpha = 0.5;

Re: 画面を強制的に真っ暗にしたい

Posted: 2018年10月05日(金) 05:08
by ねこちゃ
返信ありがとうございます!
早速教えていただいた方法にて動作検証してみました

■画面全体を非表示(真っ暗になる)
SceneManager._scene.visible = false;
■ウインドウをすべて非表示
SceneManager._scene._windowLayer.visible = false;
■すべてのウインドウを透けさせる
SceneManager._scene._windowLayer.alpha = 0;
以上のスクリプトではプラグインにて追加したウィンドウを消すことはできませんでしたが
■画面全体を透けさせる(0.5の部分は0.0~1.0まで指定可能。デフォルトは1.0)
SceneManager._scene.alpha = 0;
にてプラグインのウィンドウを含む全ての画面表示を真っ暗にすることができました!
これのおかげでイベント開始時暗転、画面処理後に再表示させることで見た目スムーズにマップイベント処理が行えるようになりました
この度はありがとうございました!またよろしくおねがいします :D