- Home /
GameObject dosen't move
I've tried to make an GameObject move using accelerometer. I went on unity docs at input.acceleration and i found this piece of code that should work but its not working and I don't know why... Please help
void Update()
{
Vector3 dir = Vector3.zero;
// we assume that device is held parallel to the ground
// and Home button is in the right hand
// remap device acceleration axis to game coordinates:
// 1) XY plane of the device is mapped onto XZ plane
// 2) rotated 90 degrees around Y axis
dir.x = -Input.acceleration.y;
dir.z = Input.acceleration.x;
// clamp acceleration vector to unit sphere
if (dir.sqrMagnitude > 1)
dir.Normalize();
// Make it move 10 meters per second instead of 10 meters per frame...
dir *= Time.deltaTime;
// Move object
rb.transform.Translate(dir * speed);
}
You got this script from unity docs? That's a little weird in my opinion. To set a position of a rigidbody directly its is recommended to use rigidbody.movePosition and not transform.Translate(), as far as i know at least. Id recommend checking Debug.Log(dir) to check if the acceleration input is actually working. Are you sure you have assigned the rigidbody to?
Yes, from here i had and the results are [0][0][0][0] every time...
Answer by BBIT-SOLUTIONS · Mar 20, 2020 at 09:02 PM
Hard to say, because the problem could be caused by different points. Do you get any errors or warnings or similar?
First thing i would suggest is to check if your rigidbody is marked as isKinematic
, when you try to move it by script.
I don't get any errors. It wasn't marked but it dosen't work even with is kinematic
marked
Ok, do you try it on a real device or only inside the Unity Editor? If you try it only in editor, you should maybe connect a remote device, see here
I have tried it on two android smartphones (Huawei and Samsung)
Answer by CBV · Mar 21, 2020 at 02:16 AM
I know its a dumb question, but do you set up speed to a value greater than 0 ?
Also, if your not in developermode, it could be, that you have to ask for permissons:
https://docs.unity3d.com/Manual/android-RequestingPermissions.html
speed is set to be 10.0f. As far as I know, I don't need permisions to use Accelerometer