Unity 3D Game Engine – Android – Accelerometer – RAW Data – Translate and Object

Inside Hierarchy create:

– Main Camera
– GUI Text X
– GUI Text Y
– GUI Text Z
– Cube (Game Object), attach ‘AccelerometerTest.js’

AccelerometerTest.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma strict
 
// Hierarchy DRAG E DROP over var GUI Text in Inspector
var scoreTextX : GUIText;
var scoreTextY : GUIText;
var scoreTextZ : GUIText;
 
    function Update () {
        var dir : Vector3 = Vector3.zero; // Shorthand for writing Vector3(0, 0, 0)
         
        dir.x = Input.acceleration.x;
        dir.y = Input.acceleration.y;
        dir.z = Input.acceleration.z;
         
        scoreTextX.text = "acceleration.x: "  + dir.x;
        scoreTextY.text = "acceleration.y: "  + dir.y;
        scoreTextZ.text = "acceleration.z: "  + dir.z;
         
    }

Hierarchy> Cube> Inspector> AccelerometerTest.js assign GUI Text to public var scoreText

Here the final result:

dir.x = Input.acceleration.x; from 1 to -1 -> example: 0.1234567 or -0.1234567
dir.y = Input.acceleration.y; from 1 to -1
dir.z = Input.acceleration.z; from 1 to -1

unity-001

unity-002

unity-003

To translate the Cube using Accelerometer data (basic):

AccelerometerTest.js

1
2
3
4
5
6
#pragma strict
 
function Update ()
{
    transform.Translate(Input.acceleration.x, 0, -Input.acceleration.z);
}

To translate the Cube using Accelerometer data (advanced):

AccelerometerTest.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma strict
 
    // Move object using accelerometer
    var speed = 10.0;
 
// Hierarchy DRAG E DROP over var GUI Text in Inspector
var scoreTextX : GUIText;
 
    function Update () {
        var dir : Vector3 = Vector3.zero; // Shorthand for writing Vector3(0, 0, 0)
         
        dir.x = Input.acceleration.x;
         
        scoreTextX.text = "acceleration.x: "  + dir.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
        transform.Translate (dir * speed);
         
    }

unity-004