PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience
Collapse Sidebar

AccelerometerEnabled

UserInputService

bool

This property describes whether the the user’s device has an accelerometer

An accelerometer is a component found in most mobile devices that measures acceleration (change in speed).

For example, the following code snippet demonstrates how to check if the user’s device has an accelerometer.

local userInputService = game:GetService("UserInputService")

local accelerometerEnabled = oserInputService.AccelerometerEnabled
if accelerometerEnabled then
	print("Accelerometer enabled!")
else
	print("Accelerometer not enabled!")
end 

If the device has an enabled accelerometer, you can get it’s current acceleration by using the UserInputService/GetDeviceAcceleration function or track when the device’s acceleration changes by using the UserInputService/DeviceAccelerationChanged event.

As UserInputService is client-side only, this property can only be used in a LocalScript.


Code Samples


Move a Ball using the Accelerometer

This code adds a force on a part so that it falls in the direction of actual gravity relative to the user’s device. This code can be seen in this uncopylocked place.

In order for this example to work as expected, it must be placed in a LocalScript and the user’s device must have an UserInputService/AccelerometerEnabled|accelerometer.


Create a Gyroscopic Camera

This example controls the player’s Camera so that it matches the player’s device orientation via using the device’s UserInputService/GyroscopeEnabled|gyroscope and UserInputService/AccelerometerEnabled|accelerometer.

The camera is positioned inside the player’s head, and updated to move with the player and the user’s device rotation, by executing the following line every RunService/BindToRenderStep|RenderStep:

		camera.CFrame = CFrame.new(head.Position - Vector3.new(0,8,10)) * currentRotation

The code sample relies on the device’s gyroscope to determine when the player rotates their device. It does so by connecting to the UserInputService/DeviceRotationChanged|DeviceRotationChanged event.

The code sample relies on the device’s accelerometer to retrieve the gravity vector used to determine the device’s orientation (whether it is flipped upside down or not). To determine whether the device’s orientation is upside down, the code sample uses the UserInputService/DeviceGravityChanged|DeviceGravityChanged event.

Since the script places the camera inside the head to create a first-person camera, the limbs are made transparent by the HideCharacter() function so that the player does not see their Player/Character when rotating the camera.

In order for this example to work as expected, it must be placed in a LocalScript and the user’s device must have a gyroscope and an accelerometer.