查看: 1180|回复: 2
打印 上一主题 下一主题

[其他] unity3d中 移动设备面朝方向

[复制链接]

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-10-31 21:07:35 |只看该作者 |倒序浏览
    Input.deviceOrientation : (例子:if (Input.deviceOrientation == DeviceOrientation.FaceDown))

    Unknown:设备的方向不能被确定。

    Portrait:设备在纵向模式,设备直立并home按钮在底部。

    PortraitUpsideDown:设备在纵向模式,但颠倒一下,设备直立并home按钮在顶部。

    LandscapeLeft:设备在横向模式,设备直立并home按钮在右边。

    LandscapeRight:设备在横向模式,设备直立并home按钮在左边。

    FaceUp:设备保持与地面平行,屏幕的面向上。

    FaceDown:设备保持与地面平行,屏幕的面向下。

    加速传感器

    Input.acceleration :竖直拿着设备(home按钮在底部),X轴指向右,Y轴指向上,Z轴指向前。加速度传感器数值可能被颠簸影响。应用低通过过滤器可以是它平滑,摆脱干扰。
  1. //加速器刷新间隔

  2.   float AccelerometerUpdateInterval = 1.0f / 60.0f;

  3.   //值越大, 被过滤值将汇集当前输入采样越慢

  4.   float LowPassKernelWidthInSeconds = 1.0f;

  5.   //过滤范围

  6.   private float LowPassFilterFactor = AccelerometerUpdateInterval / LowPassKernelWidthInSeconds;

  7.   private Vector3 lowPassValue = Vector3.zero;

  8.   void Start () {//unity3d培训:www.unitymanual.com

  9.   lowPassValue = Input.acceleration;

  10.   }

  11.   //过滤方法 (获取加速量调用此方法即可)

  12.   Vector3 LowPassFilterAccelerometer(){

  13.   lowPassValue = Mathf.Lerp(lowPassValue, Input.acceleration, LowPassFilterFactor);

  14.   return lowPassValue;

  15.   }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-11-3 03:50:33 |只看该作者
Great source code !
回复

使用道具 举报

0

主题

1

听众

168

积分

设计实习生

Rank: 2

纳金币
18
精华
0

最佳新人

板凳
发表于 2014-11-14 11:14:37 |只看该作者
应改为lowPassValue = vector3.Lerp(lowPassValue, Input.acceleration, LowPassFilterFactor);

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-20 19:28 , Processed in 0.100088 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部