🐥
【Roblox】ゲーム設定変更のイベントを受け取る方法
はじめに
今回は、ゲームの設定変更イベントを受け取る方法について解説します。
公式レファレンス
使ってみる
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 - ヴィネット効果が有効になっているか
実行
まとめ
UserSettings.GameSettings を利用することで、プレイヤーの設定変更をリアルタイムで検知し、それに応じた処理を行うことができます。他にもUserSettingsから画面の大きさ変更の通知などもあったりします。
Discussion