htc vive unity demo配合 htc可以开发出什么好玩的demo

请完成以下验证码
您当前的位置: &
用Unity开发HTC VIVE——手柄控制篇
查看: 5955|
写这篇文章的原因主要是因为现在虚拟现实非常的火爆但目前主流的虚拟现实设备(HTC VIVE)的教程却少的可怜,这个我深有体会。所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中有什么错误或者大家有什么更好的方案也请大家指出,大家互相学习,哈哈。好了直接上代码。using UnityE
using System.C
public class shoubingkongzhi : MonoBehaviour {
SteamVR_TrackedO
void Awake()
//获取手柄
tracked = GetComponent();
// Update is called once per frame
void FixedUpdate()
var device = SteamVR_Controller.Input((int)tracked.index);
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad))
Debug.Log("按下圆盘");
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger))
Debug.Log("按下扳机键");
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Grip))
Debug.Log("按下手柄侧键");
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))
Debug.Log("按下手柄菜单键");
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))
Debug.Log("按下手柄菜单键");
Debug.Log("按下手柄菜单键");}}}以上都是HTC VIVE手柄中按键按下的代码。其他还有:按键松开—device.GetPressUp(SteamVR_Controller.ButtonMask.Trigger);按键长安—device.GetPress(SteamVR_Controller.ButtonMask.Trigger);按键按下还有另一种方式,但是我自我感觉用着很别扭,没上述的好。device.GetTouchDown(SteamVR_Controller.ButtonMask.ApplicationMenu);其他用法与GetPressDown()类似。
52VR.COM微信扫一扫
专注于VR的学习、开发和人才交流
&津ICP备号&网安备57Htc Vive Sdk(OpenVR),Unity3d 开发,UGUI响应代码分析篇
开发引擎:Unity3d
设备:Htc Vive
在VR 3D的虚拟空间里,使用htc vive的手柄指向的射线来操作3D空间的UI,只能使用碰撞。
unity3d提供Physics.Raycast来实现射线碰撞,这个函数需要一个其实位置,一个方向,然后输出碰撞的物
我们根据输出碰撞的物体来作为移入这个物体的响应事件,或者我们检测到了未碰撞了来模拟作为移除的响应事件。
根据以上的操作,需要两个代码文件,raycast.cs和handleray.cs。
raycast.cs:通过射线碰撞获取到碰撞的对象,如
讲到的射线射向Cube或者UGUI的Button;
handleray.cs:处理射线碰撞或者不发生碰撞后的操作;
raycast.cs
public class raycast : MonoBehaviour
public Transform startP
public Transform endRefP
public LineR
private IHandleR
private RaycastH
void FixedUpdate()
bool bEraseRayCast = true;
Physics.Raycast(startPoint.position, endRefPoint.position - startPoint.position, out rayhit);
if (rayhit.transform)
IHandleRay handleCur = (IHandleRay)rayhit.collider.GetComponent&IHandleRay&();
if (handleCur != null)
if (handle == null || handle != handleCur)
handleCur.MoveEnter(rayhit.point);
handle = handleC
bEraseRayCast = false;
line.SetPosition(1, new Vector3(0, 0, System.Math.Abs((rayhit.point - startPoint.transform.position).z)));
if (bEraseRayCast)
if (handle != null)
handle.MoveLeave();
handle = null;
line.SetPosition(1, new Vector3(0, 0, 10.0f));
事件响应接口:
ihandleray.cs
public interface IHandleRay
void MoveEnter(Vector3 point);
void MoveLeave();
最简单的处理:
handleray .cs
public class handleray : MonoBehaviour, IHandleRay
public void MoveEnter(Vector3 point)
Debug.Log("move enter cube raycast point:" +
point.x + "-" +
point.y + "-" +
public void MoveLeave()
Debug.Log("move leave cube ");
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?Unity和Unreal Engine将支持HTC Vive的开发 - HTC官方社区
请选择举报理由
不当或违法内容
恶意或违法行为
商业广告与废文
還可輸入 200 個字元
评分这篇文章
浏览 : 2086
Unity和Unreal Engine将支持HTC Vive的开发
文章版块:
Unity和Unreal Engine是两家游戏引擎界规模最大的公司,目前这两家公司开始正式支持Valve功能全面的“房型空间”体验Steam VR,这将使开发者能够对HTC Vive立即进行开发。
目前Unity和Unreal Engine都支持HTC Vive,这包括SteamVR控制器和Lighthouse基站。开发者也可以通过OpenVR SDK来接入SteamVR软件,Valve表示,OpenVR SDK会提供给游戏一种可以与虚拟现实显示器交互的方式,而不用经由特定的硬件供应商的SDK。它可以独立于游戏进行更新,用来增加对于新的硬件或软件更新的支持。
SteamVR官方的Unity插件目前可以免费从Unity’s Asset商店中获取,包括一个合成器,能够让用户利用Unity的游戏模式预览VR中的内容,同时在主显示屏上开着普通游戏窗口,作为可随时切换的屏幕。
Unreal Engine的制造商Epic Games,也通过公司的Unreal Engine 4.8预览版,官方支持了首个Valve的SteamVR,预览版现在可以在Epic Games Launcher和GitHub获取。
Unity和Unreal Engine都让饥渴的开发者不再只是追逐Oculus Rift DK2,Samsung’s Gear VR和SteamVR硬件,而是开始了创造项目,所有前期费用和版税的完全免费。
令人感到前途光明的是开发者仍有机会得到HTC Vive的开发者版本,这是一个对于特定的开发者来说可免费提供的设备。
VIVE是虚拟头盔最强,改进版更强大,没有之一!
VIVE是虚拟头盔最强,改进版更强大,没有之一!
积极和各大软件厂商合作,软硬结合,必须叼~
可以 都是大公司
期待戴着头盔打**战的时候!
可以 都是大公司
游戏有了,软件开发也有了,就差上市了~
期待戴着头盔打**战的时候!
沪ICP备号-3 中国自己开发的UNITY文件怎么在HTC VIVE里显示_百度知道
自己开发的UNITY文件怎么在HTC VIVE里显示
我有更好的答案
这个应该需要连接HTCVIVE设备才能显示的吧,或者你可以去他们的官网留言的,会有专业的大神帮助你回答。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。请选择检举理由
不当或违法内容
恶意或违法行为
商业广告与废文
還可輸入 200 個字元
评分这篇文章
浏览 : 14876
【浸入VIVE开发】三分钟用Unity3D开发第一个VR程序
大家好,我是HTC的James。这篇短文将告诉大家如何用Unity3D制作VR版的hello, world。 S)
1.& & & & 开启SteamVR并连接Vive设备 & & (a)& & & & 登录Steam客户端,并点击右上角的VR按钮,这时会弹出SteamVR的小窗口 & && &&&图1 & & (b)& & & & 连接好所有VR设备,连接成功后SteamVR窗口上的图标会全部变为绿色 & && &&&图2 2.& & & & 新建Unity3D工程 & & 图3 3.& & & & 通过Asset Store导入SteamVR Plugin & & 图4 4.& & & & 拖入相关prefab & & 先删除所有默认GameObject & && &&&图5
& & 然后将SteamVR/Prefabs中的所有prefab拖入Hierarchy窗口 & && &&&图6 5.& & & & 点击播放按钮 & & 这个时候Game窗口会提示你可以戴上头盔了。戴上后四处环视一下,就能找到控制器。 & && &&&图7
好了,第一个程序就这么制作完成了。接下来大家就可以自行发挥啦~ 导入好看的场景和模型,编写自己的gameplay。 另外,大家可以参考SteamVR Plugin自带的示例场景,分别是: & & SteamVR/Scenes/example & & SteamVR/Extras/SteamVR_TestIK & & SteamVR/Extras/SteamVR_TestThrow
这次就介绍到这里,之后我们会详细地介绍SteamVR各个脚本的应用。
欢迎大家讨论。
本帖最后由 James 于
10:36 编辑
欢迎大家邮件联系我: james_
老师您好,是否能演示一下用UE4开发VR,显示出HTC 的手柄呢? 现在最大的问题就是手柄找不到,也不会设置!如果能提供解答,当万分感谢!
“通过Asset Store导入SteamVR Plugin”,这一步实现不了哇,因为在Assets下拉菜单中没有“SteamVR Plugin”,在Project里面也没有SteamVR和Plugin,所以第4步也不知道怎么弄
“通过Asset Store导入SteamVR Plugin”,这一步实现不了哇,因为在Assets下拉菜单中没有“SteamVR Plugin ... Asset Store 在 [Unity-Window-Asset Store]。 下载后可以导入SteamVR Plugin
老師你好 你提供的网站有一些鏈接404了= = 能不能修一下?}

我要回帖

更多关于 unity 官方demo 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信