虚拟驾驶——方向盘
来源:互联网 发布:淘宝30字好评 编辑:程序博客网 时间:2024/04/28 02:33
刚转行到Unity开发,目前从事于VR虚拟驾驶方向,简单的从一个新人角度发些帖子,记录下~
【硬件】:有一个外接模拟驾驶方向盘,档位、手刹及踏板
【软件】:unity5,C#2015
【目的】:让Unity场景中方向盘随硬件设备(方向盘)转动而实时转动
【难点】:方向盘转动方向怪异(转动方向不对)、硬件设备在Unity中获取方式
一、方向盘转动
调用localEulerAngles方法,保证steeringWheel的坐标为0(transform、rotation)
Hierarchy面板中:
第一层:作为方向盘本身父物体的父物体(上图中第一层),目的是保证方向盘朝向正确,调整其Rotation,使其Local下坐标朝向正确;
第二层:作为方向盘本身的父物体,Transform需要Reset(保证Rotation坐标全为0,不Reset一下转动的时候会出问题的,这也是为什么一个方向盘分了3层—》套了2个空物体),之后使用localEulerAngles才能实现绕自身坐标轴转动)
第三层:方向盘本身(图中物体坐标轴为世界坐标轴)
然后在脚本中添加代码,让方向盘转起来;
steeringWheel.transform.localEulerAngles=newVector3 (0,0,-m_SteerWheelAngle);
我的方向盘是基于z轴旋转,所以x轴、y轴为0,方法里边z轴的参数,为方向盘的旋转角度,在我的项目中旋转角度是-540——540)
注意:在input中的设置,Dead为灵敏度(值越小越灵敏),各属性含义可查询官方文档;
二、硬件设备在Unity中获取方式
我们的设备是一个模拟驾驶设备(照片稍后传上来)
先从我接触这个模拟设备描述:一开始看到这个设备有点蒙,毕竟之前没用过,这咋在Unity中获取相应的数据呀。。然后开始百度,找到了相应的方法:
(1)查找到 USB Force Feedback Wheel 确认外接设备是否正常;(控制面板—硬件—设备)
选择USB力回馈控制器—》右键选择游戏控制器—》选择属性
调试外接设备,观察下图中的变化
(2)在Unity的Input界面中确定输入信息获取;
通过测试得知,上图中的按键3在Unity的Input中获取方式如下:
注意Gravity、Sensitivity、Dead的配置—》通过阅读官方文档
Ps:在不同的外接设备中,有不同的数据获取方式;
在上述外接设备中,油门和刹车控制垂直方向数值(-1到1),Unity中可以用获取虚拟轴Y轴来配置;
但在G29方向盘中,离合器控制垂直方向数据(-1到1),而油门和刹车需要进行测试,才可知道如何在Unity中的Input中进行数据获取(需要根据实际情况写转换算法)
- 虚拟驾驶——方向盘
- 特斯拉车祸致死:自动驾驶还不能完全放开方向盘
- 虚拟列车驾驶总结
- osg虚拟驾驶
- 方向盘
- 虚拟驾驶环境搭建(一)
- 虚拟驾驶环境搭建(二)
- 虚拟驾驶环境搭建(三)
- 虚拟驾驶环境搭建(四)
- 【驾驶技巧】 汽车驾驶经验交流——倒车技巧
- Airsim+UnrealEngine 搭建自动驾驶虚拟环境
- 驾驶课——曲线行驶
- 方向盘打法
- 方向盘操控
- 自动驾驶——未来智能交通的畅想
- 我将进化成一条狗(8)——自动驾驶
- python实战游戏开发——驾驶飞船
- 《中国人工智能系列白皮书——智能驾驶》精编
- Hibernate4-7 映射多对多关联关系
- poj2513 Colored Sticks —— trie树 + 并查集 + 欧拉回路
- 华为OJ:字符串通配符
- spark core组件:RDD、DataFrame和DataSet
- [LeetCode]134. Gas Station
- 虚拟驾驶——方向盘
- POJ2442_Sequence_堆的应用
- 大整数开根
- 数据结构实验之排序四:寻找大富翁
- 3. Longest Substring Without Repeating Characters
- All in All
- Hibernate
- [BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)
- 如何在网上找到并下载你想要的软件