🐥

【Roblox】ゲーム設定変更のイベントを受け取る方法

2024/08/20に公開

はじめに

今回は、ゲームの設定変更イベントを受け取る方法について解説します。

公式レファレンス

https://create.roblox.com/docs/ja-jp/reference/engine/classes/UserSettings

使ってみる

local gameSettings = UserSettings().GameSettings

local function onGameSettingChanged(settingName)
    local success, newSetting = pcall(function()
        return gameSettings[settingName]
    end)

    if success then
        print("設定 '" .. settingName .. "' が変更されました。新しい値: " .. tostring(newSetting))
    end
end

gameSettings.Changed:Connect(onGameSettingChanged)

プレイヤーがゲームの設定を変更した際に、その変更を検知することができます。
変更された設定値に基づいて、ゲーム内の挙動を動的に変更することができます。

例えば、グラフィック品質が変更された際に、エフェクトの表示/非表示を切り替える、など。

どのような変更情報がとれるのか

  • AllTutorialsDisabled: bool - 全チュートリアルを無効化しているか
  • CameraMode: Enum.CustomCameraMode - カスタムカメラモードを使用しているか
  • ChatVisible: bool - チャットが表示されているか
  • ComputerCameraMovementMode: Enum.ComputerCameraMovementMode - PCでのカメラ移動モード
  • ComputerMovementMode: Enum.ComputerMovementMode - PCでの操作モード
  • ControlMode: Enum.ControlMode - 非推奨: マウスロックスイッチモードの使用可否
  • Fullscreen: bool - フルスクリーンモードか
  • GamepadCameraSensitivity: number - ゲームパッドのカメラ感度
  • GraphicsQualityLevel: number - グラフィック品質レベル
  • HasEverUsedVR: bool - VRを一度でも使用したか
  • MasterVolume: number - ゲームのマスターボリューム
  • MasterVolumeStudio: number - スタジオでのマスターボリューム
  • MouseSensitivity: number - マウス感度
  • OnboardingsCompleted: string - 完了したオンボーディング
  • RCCProfilerRecordFrameRate: number - RCCプロファイラーのフレームレート記録
  • RCCProfilerRecordTimeFrame: number - RCCプロファイラーの時間フレーム記録
  • RotationType: Enum.RotationType - キャラクターの回転方法
  • SavedQualityLevel: Enum.SavedQualitySetting - 保存されたグラフィック品質レベル
  • StartMaximized: bool - 起動時に最大化されているか (複製不可、スクリプト作成不可)
  • StartScreenPosition: Vector2 - 起動時の画面位置 (複製不可、スクリプト作成不可)
  • StartScreenSize: Vector2 - 起動時の画面サイズ (複製不可、スクリプト作成不可)
  • TouchCameraMovementMode: Enum.TouchCameraMovementMode - モバイルでのカメラタイプ
  • TouchMovementMode: Enum.TouchMovementMode - モバイルでの操作モード
  • UsedCoreGuiIsVisibleToggle: bool - CoreGuiの表示/非表示トグルの使用状況
  • UsedCustomGuiIsVisibleToggle: bool - カスタムGuiの表示/非表示トグルの使用状況
  • UsedHideHudShortcut: bool - HUD非表示ショートカットの使用状況
  • VREnabled: bool - VRが有効になっているか
  • VRRotationIntensity: number - VRの回転強度
  • VRSmoothRotationEnabled: bool - VRの滑らかな回転が有効になっているか
  • VignetteEnabled: bool - ヴィネット効果が有効になっているか

実行

https://youtu.be/rtzHtW5ek3g

まとめ

UserSettings.GameSettings を利用することで、プレイヤーの設定変更をリアルタイムで検知し、それに応じた処理を行うことができます。他にもUserSettingsから画面の大きさ変更の通知などもあったりします。

Landelテックブログ

Discussion