複数のシーンが、1個のシーンに影響する際の注意
NPCにあるボタンで話しかけたら、以下のように、画面下部の会話欄(ユーザインタフェイス(UI)のシーンの一部)に会話を表示する、という機能を作りました。
同じボタンを押すと会話欄が閉じる・NPCからプレイヤーが離れていても会話欄が閉じる、という仕組みにしました。
↓UIの会話欄に会話を表示
(左側に表示予定の顔画像はまだ作っておらず、適当な画像になっています)
しかし、NPCを2体配置したところ、会話すると、一瞬欄が開きましたが、すぐ閉じてしまう状況に。
これは当たり前といえば当たり前ですが、まだ会話していないNPCのプログラム側で、プレイヤーが離れている、と判断され、欄が閉じられてしまっていました。しかし、しばらく気づかず、迷うはめに・・・。常時プレイヤーが離れているかチェック、会話欄を非表示にするようになってしまっていたので(これ自体今回の問題がなくても負荷が高く良くないです)、そうではなく、離れた瞬間のみ非表示にするよう直しました。
各NPCに吹き出しのように会話を表示する場合、その吹き出しは各々のNPCの部品なので、別々の挙動で問題ないのですが、UIの会話欄は1個のシーンで、異なるNPCが同じ会話欄を制御しようとします。
プログラムの所属するシーン以外のシーン、しかもそれが1個しかなく、他と共有して制御する場合は、注意が必要でした。
コメント
コメントを投稿