最近项目上的事,忙的不可开交。忙里偷闲,记录下Oculus飞行视角的制作

师兄给我的要求是,带上Oculus,通过remote和头盔操作,可以完成飞行
我的解决办法:1、消除重力的影响,如同在真空中,就可以不会掉下。
       2、逐步修改位置,叠加眼睛正前方的标量,完成飞行。

using UnityEngine;
using System.Collections; public class flyingCarper : MonoBehaviour {
//OVR人的预制体Transform组件
private OVRPlayerController com_OVRControl;
//头盔眼镜Transform组件
private Transform eye_transform; //飞行速度
public int speed = ; //处于飞行状态,T是,F否
private bool fly_flag = false; void Start () {
com_OVRControl = GetComponent<OVRPlayerController> ();
eye_transform = GameObject.Find("CenterEyeAnchor").GetComponent<Transform> (); } void Update () {
if(fly_flag){ //处于飞行状态
if (OVRInput.Get (OVRInput.RawButton.DpadUp)) { //按住remote,前进按钮
fn_forward (); //前进
}
if (OVRInput.Get(OVRInput.RawButton.DpadDown)){ //按住remote,后退按钮
fn_back (); //后退
}
}
} public void reciveCheck(bool flag){
if (flag) {
com_OVRControl.GravityModifier = 0f; //修改重力为0
fly_flag = true; //飞行状态置为true
}else {
com_OVRControl.GravityModifier = 1f; //修改重力为1
fly_lag = false; //飞行状态置为false
}
} private void fn_forward(){ //看向哪里就向那里飞行
this.transform.position +=(eye_transform.forward*speed*Time.deltaTime);
} private void fn_back(){ //看下哪里,就与相反的方向飞行
this.transform.position -=(eye_transform.forward*speed*Time.deltaTime);
} }

新的知识点:1、OVRPlayer中OVRPlayerController组建中可设置重力为0;

      2、OVRInput.Get (OVRInput.RawButton.DpadUp)检测remote的按钮

Oculus中OVRPlayerController飞行视角的制作的更多相关文章

  1. WPF中桌面屏保的制作(主要代码)

    原文:WPF中桌面屏保的制作(主要代码) 制作要点:(1) 使用System.Windows.Threading.DispatcherTimer;(2) 将Window属性设置为:      this ...

  2. 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具

    查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...

  3. 利用CSS中的:after、: before制作的边三角提示框

    小颖昨天分享了一篇参考bootstrap中的popover.js的css画消息弹框今天给大家再分享一篇使用:before和:after伪元素画消息弹框的CSS. 画出来是介个酱紫的: 有没有觉得画的萌 ...

  4. 用H5中的Canvas等技术制作海报

    在去年的时候也实现过合成海报的功能,不过当时时间仓促,实现的比较简单. 就一个旋转功能,图片也不能拖动放大,也不能裁剪. 去年的实现可以参考<移动图片操作--上传>和<移动图片操作- ...

  5. Android的Recovery中font_10x10.h字库文件制作

    任务是要汉化Android中的Recovery,就了解了bootable/recovery/minui/font_10x18.h这个英文字库的来历,最终汉化的时候并没有自己汉字字库,用的github上 ...

  6. PPT中翻书动画的制作

    一.新建一个空白的PowerPoint文档.   二.制作两个页面:   1.点击“自选图形”右边的小三角,选择“基本图形”下的“折角形”图形,在PowerPoint中画出一个书页样的图形,宽度最好小 ...

  7. Scaleform 中的 3D视角相关研究

    参考文献: 1.D3D中的第一人称视角 2.透视投影的原理和实现 http://blog.csdn.net/ww51xh/article/details/2910 3.深入探索透视投影变换 http: ...

  8. [osgearth][原]仿照谷歌,修改oe漫游器中focal(视角切换)功能

    oe中的视角加速感觉好奇怪,就仿照谷歌方式去改了. 先看看oe原来的漫游器改变视角的接口: void CameraManipulator::setViewpoint(const Viewpoint&a ...

  9. 关于Unity中UI中的RawImage节点以及制作地图滚动效果

    一.贴图的Texture Type属性类型 Texture:会把贴图的大小转换为最相近的2的n次方,比如400X1369会转换为512X1024. Sprite 2D:是贴图的原始大小. 二.RawI ...

随机推荐

  1. async 和 await 的进阶

    异常的捕获: static void Main(string[] args) { //继续我们的异步编程的使用嘀呀: //关于主线程是无法捕获我们子线程中的异常滴滴啊: var t = DoExcep ...

  2. shell脚本嵌套expect脚本

    #!/bin/sh echo "helo" password='xxxx' ###不能在下面的expect脚本段设置成 set password xxxx否则获取不到变量,单独的e ...

  3. ubifs概述

    UBIFS无排序区块图像文件系统(Unsorted Block Image File System, UBIFS)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一.真正开 ...

  4. Python Set Literals

    现有3种方式创建set() >>> def f(): ... return set([1, 2, 3]) ... >>> def h(): ... return s ...

  5. 用SQL命令查看Mysql数据库大小

    要想知道每个数据库的大小的话,步骤如下: 1.进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2.查询所有数据的大小: s ...

  6. PostgreSQL function examples

    warehouse_db=# CREATE TABLE warehouse_tbl(warehouse_id INTEGER NOT NULL,warehouse_name TEXT NOT NULL ...

  7. 最新IP地址数据库 二分逼近&二分查找 高效解析800万大数据之区域分布

    最新IP地址数据库  来自 qqzeng.com 利用二分逼近法(bisection method) ,每秒300多万, 比较高效! 原来的顺序查找算法 效率比较低 readonly string i ...

  8. 当display=none时,元素和子元素高度为0的解决办法

    在前端中为了某种需要,我们需要获取display=none的元素或者子元素的实际高度来进行某些处理,然而html对display=none的元素和子元素是不进行渲染的,如果我们没有规定这些元素的高度那 ...

  9. 移动设备如何打开RMS加密的文档

    关键字:RMS. AZure RMS.IPhone.Android.Office365.Sharepoint.Exchange 最近总是碰到要求用苹果手机及安卓手机阅读RMS加密文档的需求,经过查找相 ...

  10. 在ie与火狐的兼容性

    1.在火狐下  document.getElementById("id").textContent可以获取当前获取id下的内容   而在ie下则为:document.getElem ...