Unity 3D基于unity steamvr 教程进行开发,怎么判断手柄与其他物体的接触

给我们留言
地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网
电话: 400-067-3919
(周一到周五, 周六周日休息)
设计师入口
查看: 286|回复: 0
最后登录注册时间阅读权限90积分30182
资深设计师, 积分 30182, 距离下一级还需 19818 积分
纳金币15337 精华122
using UnityE
using System.C
public class HandelButtonLeft : MonoBehaviour
{
& & #region Value File
& & [SerializeField]
& & SteamVR_TrackedObject trackedO
& & /// &summary&
& & /// 想要移动的物体
& & /// &/summary&
& & [SerializeField]
& & Transform moveO
& & //当前位置
& & float currentPos = 0;
& & //距离差
& & float disCurrent = 0;
& & //Y轴距当前位置
& & float currentPosY = 0;
& & //距离差
& & float disCurrentY = 0;
& & [Tooltip(&设置旋转角度,默认为100&)]
& & public float setRotateAngle = 100.0f;
& & [Tooltip(&设置上下移动距离,默认为0.5&)]
& & public float setMoveDistance = 0.5f;
& & #endregion
& & #region MonoMathod
& & // Use this for initialization
& & void Start()
& & {
& & // Update is called once per frame
& & void Update()
& & {
& && &&&currentPos = this.transform.position.x;
& && &&&currentPosY = this.transform.position.y;
& && &&&var decive = SteamVR_Controller.Input((int)trackedObj.index);
& && &&&if (decive.GetPress(SteamVR_Controller.ButtonMask.Trigger))
& && &&&{
& && && && &//moveObj.position = new Vector3(0, this.transform.position.y, 0);
& && && && &//moveObj.rotation = Quaternion.LookRotation(this.transform.position);
& && && && &//moveObj.Rotate(new Vector3(0, 0, 0));
& && && && &if (disCurrent & 0.001f)
& && && && &{
& && && && && & moveObj.Rotate(-Vector3.up * Time.deltaTime * setRotateAngle);
& && && && &}
& && && && &else if (disCurrent==0)
& && && && &{
& && && && && &
& && && && &}
& && && && &else if(disCurrent&-0.001f)
& && && && &{
& && && && && & moveObj.Rotate(Vector3.up * Time.deltaTime * setRotateAngle);
& && && && &}
& && && && &//----------------------
& && && && &if (disCurrentY&0.005f)
& && && && &{
& && && && && & moveObj.Translate(Vector3.up * Time.deltaTime * setMoveDistance);
& && && && &}
& && && && &else if (disCurrentY==0)
& && && && &{
& && && && && &
& && && && &}
& && && && &else if (disCurrentY & -0.005f)
& && && && &{
& && && && && & moveObj.Translate(-Vector3.up * Time.deltaTime * setMoveDistance);
& && && && &}
& && &&&}
& & void FixedUpdate()
& & {
& && &&&disCurrent = this.transform.position.x - currentP
& && &&&disCurrentY = this.transform.position.y - currentPosY;
& & }
& & void Awake()
& & {
& && &&&trackedObj = GetComponent&SteamVR_TrackedObject&();
& & }
& & #endregion
}
复制代码
站长推荐 /1
纳金名模第139期吧椅3d模型:数量100个,大小为195MB。完全免费下载哦!这样的福利我和我的小伙伴们都惊呆了!!下载地址:
Powered by - X2.5
Narkii Inc.您的当前位置: >
Unity3D插件或将成为HTC Vive一大优势
来源:VR乐趣网整理作者:少年
Unity3D插件或将成为HTC Vive一大优势,混合现实视频在接下来的几个月将成为Vive的一个竞争优势,而得到Unity插件的官方支持则是锦上添花——更多的开发者将为Vive开发新体验。
Unity3D插件或将成为HTC Vive一大优势,混合现实视频在接下来的几个月将成为Vive的一个竞争优势,而得到Unity插件的官方支持则是锦上添花&&更多的开发者将为Vive开发新体验。
混合现实虽然出现时间不长,但已经成为向公众展示VR体验效果的有力方式,并为HTC Vive迅速圈粉,吸引大批开发者来打造新体验。价值800美元的HTCVive将在四月初上市,与售价600美元的Oculus Rift同台竞技,HTCVive上的视频不仅体现了多出的200美元价值所在,更展现了这种新媒介能带给人们怎样的体验。HTCVive的手柄控制器将与头显同时发行,而Rift则没有。
混合现实视频虽然也可以在Rift上浏览,但因为Oculus Touch手部跟踪控制器要到今年下半年才上市,所以Rift的吸引力就不如Vive。也就是说,混合现实视频在接下来的几个月将成为Vive的一个竞争优势,而得到Unity插件的官方支持则是锦上添花&&更多的开发者将为Vive开发新体验。
Unity(目前最受欢迎的VR开发工具 )对混合现实视频的支持与混合现实的开创者之一,Fantastic Contraption开发者的作品不谋而合。从StreamVR插件1.0.8更新的说明便可看出:增加了SteamVR_ExternalCamera支持混合现实视频拍摄,并且可以通过三方控制器来切换。
三方控制器可以绑在相机上以提供追踪信息,这样就可以把现实中人的移动和他们在VR头显中看到的虚拟环境合并起来。来自加拿大的视觉特效专家 Kert Gartner 曾为多个独立开发者制作游戏预告片,目前他在Fantastic Contraption开发者的基础上 继续改进 ,为VR体验制作预告片,这将加速VR技术的推广。请完成以下验证码
您当前的位置: &
用Unity开发HTC VIVE——手柄控制篇
查看: 634|
写这篇文章的原因主要是因为现在非常的火爆但目前主流的虚拟现实设备(HTC )的教程却少的可怜,这个我深有体会。所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中有什么错误或者大家有什么更好的方案也请大家指出,大家互相学习,哈哈。好了直接上代码。using E
using System.C
public class shoubingkongzhi : MonoBehaviour {
void Awake()
//获取手柄
tracked = GetComponent();
// Update is called once per frame
void FixedUpdate()
v 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()类似。
微信扫一扫
专注于VR的学习、开发和人才交流
&津ICP备号&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 unity steamvr插件 的文章

更多推荐

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

点击添加站长微信