[开源互助-原创文章,转载请说明出处]
第三帖中已经创建了一个cardboard自带的demo应用,但它是不能移动的,玩家只能站在原地,通过头部转动来观察四周,除此之外,玩家并没有更多的手段与游戏场景进行交互。本帖将描述如何使用蓝牙手柄实现玩家的位置移动,包括前、后、左、右,跳跃等动作。
第一步:首先我们得有一个第一人称角色在场景中,因此,导入UNITY自带的第一人称模型包:

导入场景后,在项止浏览窗口中:

第二步:将第一人称控制器下的prefab拉入到场景中:

如下:

第三步:移除场景中第一人称控制器自身的maincamera,同时将cardboardmain拉到该第一人称控制器的下面:

稍微调整cardboardmain在父物体中的坐标,使其移到第一人称的上端:

第四步:开始修改第一人称控制器的脚本,有以下几点需要修改:

1、之前第一人称的视线是跟随鼠标移动,现在要使其跟随cardboard跟踪到的头部姿态的运动而移动;

2、之前第一人称的前后左右移动是由键盘上的控键控制,现在要由蓝牙手柄上的按键来控制;

动手:

1、使第一人称的视线其跟随cardboard跟踪到的头部姿态的运动而移动;

在FirstPersonController.cs中的update函数中去掉rotateview(这里就是实现鼠标控制):

同时初始化也去掉:

在Cardboard\Scripts\CardboardHead.cs中的UpdateHead函数中,根据获取到的头部转动数据来控制第一人称的Y轴转向:

这样就实现了使用cardboard的头部转动数据来控制第一人称头部转动的效果。

2、使用蓝牙手柄上的按键来控制第一人称的前后左右移动;

蓝牙手柄被android系统识别手,是作为一种键盘设备来对待的,也就是说,我们无需再为其开发专用的插件,而unity3d中已为其设计了相应的按键事件来响应蓝牙手柄上按键的按下,因此,首先要弄清手上的蓝牙手柄的各个按键都对应UNITY3D中哪个按键事件,可以写一个小demo,用来将按下的按键值显示在屏幕上。

我的蓝牙手柄在unity3d中的键值映射关系如下:

有了以上映射关系后,再找到代码中控制第一人称移动和跳跃的地方,修改之:

在FirstPersonController.cs中

在FirstPersonController.cs中

一般游戏中会使用手柄左前端上面的按键来控制角色的走动或者跑动,修改如下:

在FirstPersonController.cs中

这样,就实现了前面提到的两个目标。

再编一个apk试试吧,enjoy it!

转载于:https://www.cnblogs.com/donghua/p/5023745.html

开发一个最简单的Cardboard虚拟现实应用(四)做一个Cardboard第一人称控制器相关推荐

  1. bbs jsp mysql_BBS 一个比较简单的用jsp+servlet+mysql做的bbs论坛 Jsp/ 265万源代码下载- www.pudn.com...

    文件名称: BBS下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 1038 KB 上传时间: 2014-11-02 下载次数: 42 提 供 者: 陈生 详细说 ...

  2. 用简单的办法在c++程序做一个老板键(万能老板键和隐藏固定程序的老板键)

    用简单的办法在c++程序做一个老板键(万能老板键和隐藏固定程序的老板键) 我对这些并不值很了解但是我觉得这样做对于第一次做老板键的人来说比较简单,至少没有那么多麻烦的函数名和用法 首先,要在c++中获 ...

  3. 编写简单php表单,用PHP做一个简单的表单

    PHP最有用的特性之一是它能够自动将表单中的变量值赋予PHP变量.这使得表单处理变得非常快捷. 因此,假如你送出一个内含输入栏位值的表单如下: 当你用PHP处理此页面,$name变量的值就会是 Gle ...

  4. 计算机硬盘 电机 利用,如何利用坏硬盘来做一个超强风扇,变废为宝 利用坏硬盘来做一个超强风扇,变废为宝的方法...

    今天给大家带来如何利用坏硬盘来做一个超强风扇,变废为宝,利用坏硬盘来做一个超强风扇,变废为宝的方法,让您轻松解决问题. 店里好多坏硬盘,回收了又值不了几个钱.今天无事,突发奇想,为什么不做个7200风 ...

  5. python写一个表白程序_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  6. 使用AngularJS 进行Hybrid App 开发已经有一年多时间了,这里做一个总结

    一.AngularJS 初始化加载流程 1.浏览器载入HTML,然后把它解析成DOM. 2.浏览器载入angular.js脚本. 3.AngularJS等到DOMContentLoaded事件触发. ...

  7. Unity-PlayMaker开发学习笔记——简单的第三/第一人称控制器

    一.在场景中新建plane模拟地面,新建一个cube模拟玩家 二.在cube上添加unity提供的第一/第三人称控制器组件:Character Controller 三.在cube上添加状态机 1.G ...

  8. java有声小说如何开发_怎么加入有声小说配音?如何做一个有声小说配音员

    当今世界1种东西便会有千种形状,当然了1个嗓音也会出现千种类别如今在日常生活中非常普遍的类别就会有许多,比如说娃娃音.萝莉音.大叔音及其御姐音等等这些,并且还有不同的额读法. 举个事例,如果有合适御姐 ...

  9. 如何搭建一个会员网站?零基础用WordPress做一个会员网站视频教程

    首先,什么是会员网站?会员网站是一种订阅服务,以提供内容,商品和/或服务,来换取通常每月或每年的付款. 会员插件适合站长.创作者.公司.企业.博主等人群,做内容付费.教育培训.资料下载等类型的网站.创 ...

最新文章

  1. BZOJ1449[JSOI2009]球队收益BZOJ2895球队预算——最小费用最大流
  2. Spring学习5之自动装配Bean01
  3. 放置奇兵 算法 月度活动 破碎时空记录 第五关 丁丁(瓦伦丁)+杰赫拉
  4. 谭浩强课后题之----求和,其中a是一个数字,n表示a的位数
  5. 网络游戏中用到哪些计算机技术,美术设计中计算机技术的应用论文
  6. 五十五、Java单元测试类Junit
  7. 计算机巧用剪纸做画册教案,3 巧折巧剪教案公开课一等奖
  8. python代码_python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定!
  9. Oracle CoherenceWebLogic反序列化远程代码执行漏洞安全风险通告
  10. 智力与体力的人种矛盾
  11. 运动重构(SFM)学习笔记一
  12. Arduino驱动MAX30102心率血氧传感器模块
  13. 饿了么,美团外卖红包小程序欢迎了解一下(0基础搭建自己的外卖分销cps小程序)
  14. TCP长连接和短连接区别
  15. SpringBoot自动装配的魔力
  16. 古月居 ROS 入门21讲--PA17 ROS中坐标系管理系统笔记
  17. 专注UI——实用技术:模糊搜索
  18. 【笔记】 数字集成电路设计(一)
  19. 软件工程(一)------软件生存周期
  20. 北邮计科院导师简况2009-09-27 14:13:38

热门文章

  1. 无法通过ip地址连接其它电脑的数据库,但是又可以ping通,错的不是配置,而是差了一个步骤
  2. Exchange 中关于邮件的生命周期和托管文件夹的相关设定
  3. SHELL TIPS: GNU SCREEN 的一些小技巧
  4. 分区起始位置参数溢出_IIS6.0缓冲区溢出漏洞深度分析(CVE-2017-7269)
  5. 2022-03-28 术语MES、WMS
  6. linux内核分支,新闻|Linux 内核分支 2.4 版结束生命周期
  7. Ubuntu14.04+RabbitMQ3.6.3+Golang的最佳实践
  8. jquery跨域调用webService
  9. IDEA工作常用第三方插件
  10. Bug:No mapping for GET /onepill//swagger-ui.html