[Investor Relations]  |  官方微博

Unity3D培训

美国上市公司 · 亿元级外企unity3D培训企业

  • 全国服务监督电话4001118989
  • Unity3D iphone重力感应控的两种方法

    发布:Unity3D培训  来源:Unity3D教程  时间: 2015年12月23日

  • Unity3D iphone重力感应控的两种方法...

  • Unity3D iphone重力感应控的两种方法:另有:史上最全的Unity3D iPhone(IOS)开发问题汇总与解决办法!

    方案一: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);

    }

    总结:方案一,操控比较灵活,反应灵敏。方案二,操控具有惯性,缓冲明显

  • 上一篇:Unity3D中如何使用FileInfo类和File类?区别是什么?

    下一篇:Unity3D脚本:3Dsmax中UV偏移动画如何导入Unity中

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56