2025年12月24日 活動日誌

運営

概要

クルクルシューティング

設定画面

設定画面でのBGMや効果音をOFFにした際にアイコンを変えられるように対応。
本来は既存の構成で規定の場所にON/OFFそれぞれのアイコンを設定してあげれば、アイコンを変えられるようだけど、透過処理の影響か上手くいかない。
なので、スクリプトでアイコン画像を変えるよう様にしました。

// アイコン切り替え
bgmIcon.sprite = isOn ? bgmIconOn : bgmIconOff;
確認ダイアログ

ゲームを終了ボタンを間違って押してしまった場合を考慮して、確認ダイアログを表示するようにしました。
ダイアログ自体は色んな画面で使用するので、呼び出し側でメッセージ等を設定可能に。

ダイアログ側の処理

    public static void Show(string title, string message, Action onOK, Action onCancel = null,
                            string okText = "OK", string cancelText = "キャンセル")
    {
        if (Instance == null) return;

        Instance.gameObject.SetActive(true);

        // タイトル(空なら非表示)
        if (Instance.titleText != null)
        {
            Instance.titleText.text = title;
            Instance.titleText.gameObject.SetActive(!string.IsNullOrEmpty(title));
        }

        // メッセージ
        Instance.messageText.text = message;

        // OKボタン
        Instance.okButton.gameObject.SetActive(true);
        Instance.okButton.GetComponentInChildren<TextMeshProUGUI>().text = okText;

        // Cancelボタン
        bool showCancel = onCancel != null && !string.IsNullOrEmpty(cancelText);
        Instance.cancelButton.gameObject.SetActive(showCancel);
        if (showCancel)
        {
            Instance.cancelButton.GetComponentInChildren<TextMeshProUGUI>().text = cancelText;
        }

        // コールバック保存
        Instance.onOK = onOK;
        Instance.onCancel = onCancel ?? (() => Instance.Close());
    }

ダイアログの呼び出し

        GenericDialog.Show(
            title: "確認メッセージ",
            message: "本当にゲームを終了しますか?",
            onOK: () =>
            {
                this.FixSettings?.Invoke(SettingsResult.ExitGame);
                Destroy(this.gameObject);
            },
            onCancel: () =>
            {

            },
            okText: "終了",
            cancelText: "キャンセル"
        );

各ボタンを押下した処理も呼び出し元でちゃんと設定できるので、今後も流用していけるね。

本来はアンロードさせずに表示、非表示させる感じにすると良いらしいけど、サイズ調整とかを
ミスってたり、表示されなかったりと悪戦苦闘してたので、
結局は必要なシーンにて個別に呼び出すようにしています。
(他のシーンでは読んでないのでちゃんと動くのかは未知数)

明日の予定

プレイ画面のオーディオ関係は大体完了したので、他の画面にも反映させていきます。
また、BGMも新しく作ろうかなと思います。

おまけ

クリスマスなので、クリスマスバージョンのくるしゅ~です。

コメント

タイトルとURLをコピーしました