找回密码
 立即注册

unity3d iphone 重力感应控制

已有 2058 次阅读2012-12-1 21:00

方案一:speed

public var simulateAccelerometer:boolean = false;

var speed = 10.0;

function Update () {

    var dir : Vector3 = Vector3.zero;

    if (simulateAccelerometer)

    {

        dir.x = Input.GetAxis("Horizontal");

        dir.y = Input.GetAxis("Vertical");

    }

    else

    {

        dir.x = Input.acceleration.x;

        dir.y = Input.acceleration.y;

        // 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);

}

也可以把速度换成力

方案二:Force

public var force:float = 1.0;

public var simulateAccelerometer:boolean = false;

function FixedUpdate () {

    var dir : Vector3 = Vector3.zero;

    if (simulateAccelerometer)

    {

        // using joystick input instead of iPhone accelerometer

        dir.x = Input.GetAxis("Horizontal");

        dir.y = Input.GetAxis("Vertical");

    }

    else

    {

        // 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.y = Input.acceleration.x;

        // clamp acceleration vector to unit sphere

        if (dir.sqrMagnitude > 1)

            dir.Normalize();

    }   

    rigidbody.AddForce(dir * force);

}

个人感觉方案一操控起来比较灵活,反应灵敏。方案二操控起来具有惯性,缓冲明显。

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-7 05:57 , Processed in 0.051588 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

返回顶部