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

unity3D手机开发中的三维重力感应效果

[复制链接]

5552

主题

2

听众

8万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
11

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

跳转到指定楼层
楼主
发表于 2012-4-13 14:09:21 |只看该作者 |倒序浏览
和2D一样,还是用到Input.acceleration;但不同的是,3D中要得把世界坐标转化成屏幕坐标,这个方法前面有提到过,就是WorldToScreenPoint,再用屏幕坐标进行计算,最后再转化成世界坐标就行。下面我们看看代码吧。
var target:Transform;
function Update(){
     var screenpos=Camera.main.WorldToScreenPoint(target.position);
screenpos.y+=Input.acceleration.x*100*Time.deltaTime;
screenpos.x -=Input.acceleration.y*100*Time.deltaTime;
target.position=Camera.main.ScreenToWorldPoint(screenpos);
}
function OnGUI(){
   GUI.Label(Rect(Screen.width/2,Screen.height/2,100,100),""+Input.acceleration);
}
这里的screenpos.y+=Input.acceleration.x*100*Time.deltaTime; screenpos.x -=Input.acceleration.y*100*Time.deltaTime;这些
x,y到时候根据你的效果来更改吧。
比较实用的开发小知识,转过来大家学习下:http://blog.csdn.net/dlnuchunge/article/details/7380829
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

643

主题

1

听众

9937

积分

高级设计师

Rank: 6Rank: 6

纳金币
9935
精华
1

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

沙发
发表于 2012-4-13 20:29:08 |只看该作者
回复

使用道具 举报

643

主题

1

听众

9937

积分

高级设计师

Rank: 6Rank: 6

纳金币
9935
精华
1

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

板凳
发表于 2012-4-13 20:29:18 |只看该作者
行不错
回复

使用道具 举报

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

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

GMT+8, 2025-7-14 16:45 , Processed in 0.142971 second(s), 28 queries .

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

© 2008-2019 Narkii Inc.

回顶部