Unity虚拟现实开发——鼠标开关窗户效果多种实现方案
2017-04-12 10:59
411 查看
在使用Unity进行VR开发中遇到鼠标拖动开关窗户的功能需求,我想到三种解决方案:
一:窗户模型必须经过建模软件的处理,使其坐标轴Y轴在窗子边沿;使用欧拉角改变鼠标拖动中的窗户旋转角度(eulerAngles),并使用Mathf.Clamp()限制其旋转角度;
二:为模型录制关键帧动画Animation,在鼠标拖动过程中改变其播放顺序和速度;
三:使用Unity提供的物理组件:HingeJoint(铰链关节)。
下面演示第三种方案(使用铰链关节)如何实现开关窗户效果:
我们勾选HingeJoint组件的UseLimits选项,并限制最大窗户开合角度为90度。
代码如下:
我使用了UGUI提供的事件接口(对于非UI的3D物体同样适用),目的是简化代码量,因为事件接口中为我们提供了现成的鼠标拖动增量值delta,可以很好的根据鼠标拖动速度改变窗子的开合快慢。
运行效果如下:
Pai大星微信——2463954659.
一:窗户模型必须经过建模软件的处理,使其坐标轴Y轴在窗子边沿;使用欧拉角改变鼠标拖动中的窗户旋转角度(eulerAngles),并使用Mathf.Clamp()限制其旋转角度;
二:为模型录制关键帧动画Animation,在鼠标拖动过程中改变其播放顺序和速度;
三:使用Unity提供的物理组件:HingeJoint(铰链关节)。
下面演示第三种方案(使用铰链关节)如何实现开关窗户效果:
我们勾选HingeJoint组件的UseLimits选项,并限制最大窗户开合角度为90度。
代码如下:
我使用了UGUI提供的事件接口(对于非UI的3D物体同样适用),目的是简化代码量,因为事件接口中为我们提供了现成的鼠标拖动增量值delta,可以很好的根据鼠标拖动速度改变窗子的开合快慢。
运行效果如下:
Pai大星微信——2463954659.
相关文章推荐
- Android应用开发中半透明效果实现方案
- Unity游戏开发技巧集锦2.1.3实现效果
- PHP开发中多种方案实现高并发下的抢购、秒杀功能
- 【小松教你手游开发】【游戏渲染】unity海边波浪效果的实现
- Unity游戏开发日记-炉石传说之卡牌切换效果实现
- Android应用开发中半透明效果实现方案
- iOS开发之UITableview之多种Cell高度自适应实现方案的UI流畅度分析
- Unity鼠标悬停实现图片的浮动效果
- 安卓开发中,在低版本SDK使用高版本的API会报错。一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案;后者可以用如下技巧来实现。
- 从0开始html前端页面开发_CSS实现图像获取鼠标焦点逐渐变大动画效果
- Android应用开发中半透明效果实现方案
- iOS开发中实现动画效果的多种方法
- JavaScript实现的多种鼠标拖放效果
- 用unity编写游戏的时候,怎么实现跟BattleGround一样的鼠标效果
- Android应用开发中半透明效果实现方案
- Unity游戏开发技巧集锦2.1.3实现效果
- 【Unity开发】实现简易时钟效果
- iOS开发中模糊效果的实现方案
- PHP开发中多种方案实现高并发下的抢购、秒杀功能
- Android开发之ToggleButton实现开关效果示例