2011年10月31日 星期一

[Unity] 利用手機裝置的加速器控制物件的程式碼

> > > > > > > > > >

使用加速器感應器(重力感應器)取得移動的數值。

最後一段程式碼有兩種不同的寫法,效果也不同
rigidbody.AddForce(dir * speed);
transform.Translate (dir * speed);



// Move object using accelerometer
var speed = 10.0;
function Update () {
    var dir : Vector3 = 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
    rigidbody.AddForce(dir * speed);
// transform.Translate (dir * speed);
}

沒有留言:

張貼留言