HapticService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
現代のコントローラーとデバイスは、ハプティックフィードバックを提供するためにモーターを内蔵しています。音響や振動を追加すると、視覚的またはオーディオの形式で伝達するのが困難な潜在的なフィードバックを提供できます。
Roblox は、次のデバイスに対応のハプティックスをサポートしています:
- ほとんどの iPhone、Pixel、および Samsung Galaxy デバイスをサポートするアンドロイドと iOS の電話
- プレイステーションのゲームパッド
- Xbox ゲームパッド
- クエストタッチコントローラー
概要
方法
現在の振動値セットを指定された UserInputType および Enum.VibrationMotor に戻します。これは以前に SetMotor が呼び出されていない場合には返りません。
指定されたモーターが指定された Enum.UserInputType で使用可能である場合、Return true。
指定された Enum.UserInputType がハプティックフィードバックをサポートすると、真 が返されます。
- SetMotor(inputType : Enum.UserInputType,vibrationMotor : Enum.VibrationMotor,vibrationValues : Tuple):void
指定された UserInputType と Enum.VibrationMotor の振動強度を設定します。
プロパティ
方法
GetMotor
現在の振動値セットを指定された UserInputType および Enum.VibrationMotor に戻します。これは以前に SetMotor が呼び出されていない場合には返りません。
パラメータ
指定された Enum.UserInputType 。
指定された Enum.VibrationMotor。
戻り値
現在の振動値は、指定の Enum.UserInputType または nil に設定されていますが、Enum.VibrationMotor が以前に呼び出されていない場合は、SetMotor または nil に設定されています。
IsMotorSupported
指定されたモーターが指定された Enum.UserInputType で使用可能である場合、Return true。
パラメータ
特定の Enum.UserInputType が Enum.VibrationMotor のサポートのためにチェックされています。
指定された Enum.VibrationMotor は、指定された Enum.UserInputType をサポートしているかどうかをチェックします。
戻り値
指定されたモーターが指定された Enum.UserInputType で使用できる場合、指定されていない場合は false です。
IsVibrationSupported
指定された Enum.UserInputType がハプティックフィードバックをサポートすると、真 が返されます。
パラメータ
指定された Enum.UserInputType は、ハプティックフィードバックをサポートしているかどうかをチェックします。
戻り値
指定された Enum.UserInputType がハプティックフィードバックをサポートしている場合は、True。
SetMotor
指定の UserInputType と Enum.VibrationMotor の振動強度を設定します。ほとんどの使用ケースでは、Gamepad1 を 2>Class.InputObject.UserInputType2> として指定します。
パラメータ
指定された Enum.UserInputType 。
指定された Enum.VibrationMotor。
モーターがどれくらい強く振動するかを示します。 テーブルの最初の値を使用しますが、数字でなるべきです。
戻り値
コードサンプル
local UserInputService = game:GetService("UserInputService")
local HapticService = game:GetService("HapticService")
local cachedInputs = {} -- Note that we use a cache so we don't attach a Changed event more than once.
local keyToVibration = {
[Enum.KeyCode.ButtonL2] = Enum.VibrationMotor.Small,
[Enum.KeyCode.ButtonR2] = Enum.VibrationMotor.Large,
}
local function onInputBegan(input)
if not cachedInputs[input] then
local inputType = input.UserInputType
if inputType.Name:find("Gamepad") then
local vibrationMotor = keyToVibration[input.KeyCode]
if vibrationMotor then
-- Watch this InputObject manually so we can accurately update the vibrationMotor.
local function onChanged(property)
if property == "Position" then
HapticService:SetMotor(inputType, vibrationMotor, input.Position.Z)
end
end
cachedInputs[input] = input.Changed:Connect(onChanged)
end
end
end
end
UserInputService.InputBegan:Connect(onInputBegan)