【Unity】オプション設計のサンプル

Unityでオプション登録を実装するためのサンプルコードです。この例では、音量調整と画面の解像度変更をサポートしています

using UnityEngine;
using UnityEngine.UI;

public class OptionsManager : MonoBehaviour
{
    public Slider volumeSlider;
    public Dropdown resolutionDropdown;

    private Resolution[] resolutions;

    private void Start()
    {
        // 音量スライダーの初期化
        volumeSlider.value = PlayerPrefs.GetFloat("Volume", 0.5f);

        // 解像度の選択肢を取得してドロップダウンに設定
        resolutions = Screen.resolutions;
        resolutionDropdown.ClearOptions();

        // 解像度を文字列に変換してドロップダウンに追加
        foreach (var resolution in resolutions)
        {
            string option = resolution.width + "x" + resolution.height;
            resolutionDropdown.options.Add(new Dropdown.OptionData(option));
        }

        // プレイヤーの保存された解像度を取得し、ドロップダウンで選択
        int savedResolutionIndex = PlayerPrefs.GetInt("ResolutionIndex", resolutions.Length - 1);
        resolutionDropdown.value = savedResolutionIndex;
        resolutionDropdown.RefreshShownValue();
    }

    public void SetVolume(float volume)
    {
        // 音量を設定し、保存
        AudioListener.volume = volume;
        PlayerPrefs.SetFloat("Volume", volume);
    }

    public void SetResolution(int resolutionIndex)
    {
        // 選択された解像度を設定し、保存
        Resolution resolution = resolutions[resolutionIndex];
        Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
        PlayerPrefs.SetInt("ResolutionIndex", resolutionIndex);
    }

    public void SetFullscreen(bool isFullscreen)
    {
        // フルスクリーンモードを設定し、保存
        Screen.fullScreen = isFullscreen;
        PlayerPrefs.SetInt("Fullscreen", isFullscreen ? 1 : 0);
    }
}

このコードは、OptionsManagerというスクリプトでオプションの設定を管理します。ゲームオブジェクトにアタッチし、関連するUI要素(スライダー、ドロップダウンなど)を正しく設定してください。

このサンプルでは、音量を調整するためのスライダーと、解像度を変更するためのドロップダウンを使用しています。Startメソッドでは、保存された設定を復元し、初期値として設定します。

SetVolumeメソッドでは、音量を設定し、PlayerPrefsを使用して値を保存します。SetResolutionメソッドでは、選択された解像度を設定し、Screen.SetResolutionを使用して画面の解像度を変更します。また、SetFullscreenメソッドでは、フルスクリーンモードを設定します。

このコードは、設定を保存するためにPlayerPrefsを使用しています。PlayerPrefsは、値をキーと関連付けてディスク上に保存し、次回の起動時に復元することができるUnityの機能です。

このサンプルコードは、オプション設定を管理するための基本的なフレームワークを提供します。必要に応じて、他のオプション(言語設定、マウス感度など)を追加したり、UIやエフェクトをカスタマイズしたりすることができます。

Unity,設計

Posted by hidepon