首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > Unity3D研究院之鼠标拉近旋转拖拽模型(六十)
2013
05-29

Unity3D研究院之鼠标拉近旋转拖拽模型(六十)

今天帮一个朋友看了个虚拟现实的项目,他希望实现鼠标滚动拉近模型、鼠标右键旋转模型、鼠标中键拖拽模型,部分功能网上已经有答案、但是合在一起的没有找到,哪么我就加以总结把把功能都写在这个demo中吧。

 

Unity3D研究院之鼠标拉近旋转拖拽模型(六十) - 雨松MOMO程序研究院 - 1

 

把如下代码直接挂在摄像机对象上。最近心情很down,有点懒了就不写注释了,如果有朋友有疑问欢迎给我留言。。

 

最后是工程下载地址:http://vdisk.weibo.com/s/Dorl2

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

Unity3D研究院之鼠标拉近旋转拖拽模型(六十)》有 39 条评论

  1. lofer 说:

    5.5.1版本的unity不能对博主的包解压Failed to import package with error: Couldn’t decompress package

  2. 我采用了你的代码,可是出现了这样的错误,是为什么?UnassignedReferenceException: The variable target of show3D has not been assigned.You probably need to assign the target variable of the show3D script in the inspector.

  3. GENEYY 说:

    雨松大大,(功能和你写的一样)我想问下可以通过可以通过改变摄像机的位置实现拖拽物体的效果吗,我写了一个右键旋转和滚轮缩放都实现了,但是拖拽模型正面功能是正常的只要右键旋转角度,拖拽就会横纵向颠倒(我是拿偏移值写的拖拽摄像机实现拖拽物体效果),最后发现是摄像机的位置旋转过去还是按照世界坐标给摄像机赋的值,不知道有什么好的解决方案,谢谢!!!

  4. 喷液 说:

    鼠标滚轮视角会变的情况 应该是物体不在原点 transform.position = normalized * normalDistance;这里改成 transform.position = normalized * normalDistance CameraTarget;应该就没问题了

  5. 喷液 说:

    鼠标滚轮视角会变的情况 应该是物体不在原点 transform.position = normalized * normalDistance;这里改成 transform.position = normalized * normalDistance + CameraTarget;应该就没问题了

  6. 水天若飞 说:

    Momo大神 如果拖拽时使物体只延着Z轴移动 应该怎么弄呢

  7. _yu先森 说:

    雨松大神,我把你的脚本放进去了,附给了main camera 运行后,鼠标稍微动一下,视角就变了

  8. - 说:

    雨松大神,小弟做2d横版跑酷游戏,使用transform.Translate(Vector3(1,0,0)*speed*Time.deltaTime)平移物体时,当speed数值稍微大点儿后,物体的边缘有明显的画面抖动感 ,请问这个问题怎么解决?求指点~

  9. -+ 说:

    雨松大神,小弟做2d横版跑酷游戏,使用transform.Translate(Vector3(1,0,0)*speed*Time.deltaTime)平移物体时,当speed数值稍微大点儿后,物体的边缘有明显的画面抖动感 ,请问这个问题怎么解决?求指点~

  10. hehe 说:

    y = ClampAngle(y, yMinLimit, yMaxLimit); MoMo老师,y的值为什么要限制大小呢。

  11. kulolo 说:

    缩放模型,在旋转模型的时候会自动放大很多,请问怎么解决保持模型不变!

  12. kulolo 说:

    请问,最大化的限制在哪里调!?

  13. 你好 我是初学js的 问个小白问题 从网上下的脚本 在我电脑上一律报错’;’expected,insert a semicoion at the end 换了两台电脑都这样 已排除输入法影响 编译器字符的问题吧? 请问mono里哪里设置字符编码?谢谢~

  14. atom 说:

    momo ,transform.position = rotation * new Vector3(transform.position.x,transform.position.y,z);这个计算后的y轴向坐标为什么不为0呢?(新手菜鸟望解答下哈)

  15. 0℃空间 说:

    这个例子好,感谢MOMO大师

  16. IT工头 说:

    感谢,momo,这个例子非常棒

  17. 柴郡的猫 说:

    大师啊,现在心情好了,能不能给这段代码加下注释啊,便于我们菜鸟学习啊,拜托了

  18. 柴郡的猫 说:

    雨松,你好!这个脚本不能正常工作,工程下载后,U3D解包出错,网上找的其他一些脚本也不好用会不会是U3D版本的问题,我是最新的4.1.5能不能推荐一个好用的版本?谢谢!

  19. 不希望,松大心情down····关注好久了,一直潜水…刚还在看你U3D的书..····

  20. 潘杰华 说:

    雨松大哥 为何这个demo缩放的时候物体离视口那么远呢

  21. 雨凇大哥,我用unity3D做了几款动态壁纸,但是载入的非常慢,会是什么原因呢?问美工,他们也不知道。做成APK形式加载也是一样的慢。另外,有没有好的联系方式。qq群什么的?

  22. 1989姜豆 说:

    .unitypackage系统不认,需要下载什么就可以识别了,雨凇大哥。

  23. 索拉 说:

    不好意思 問個無關此文的問題 …MOMO您有研究過關於遊戲暫停(Timescale = 0) 後GUI依然還能跑動畫(像是淡入淡出選單)嗎?或是有其他遊戲暫停依然能跑所需的動畫的構思?有在國外論壇看到是把所需要暫停的腳本都在Update中最外層加上if( !pause )的條件再利用迴圈去sendMessage使pause = true; 但是這樣感覺有些不方便就是了 …

  24. 若水秋荷 说:

    怎么了?松哥,注意调节心情啊,有时间看下《老子》吧

  25. QQ 说:

    原要放在移动端的话,要把脚本怎么改呢??一只手指是旋转,两只手指是缩放

  26. YY 说:

    正要用到,MOMO就放出来了,好感动

  27. 华丽的落幕 说:

    start的官方注释: Start is called just before any of the Update methods is called the first time. FixedUpdate是固定调用的,如果在awake以后update的帧是2秒,而fixedUpdate是1秒,会不会出现下面的执行顺序? awake (1秒后) fixedupdate (1秒后)start update

  28. 欧天窗 说:

    雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松雨松弄一个 MMO的例子咯

留下一个回复

你的email不会被公开。