600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 暴风魔镜中的凝视

暴风魔镜中的凝视

时间:2022-11-05 06:56:05

相关推荐

暴风魔镜中的凝视

暴风魔镜中的凝视

暴风魔镜也是一种VR设备,通过暴风的眼镜来体验VR的场景,通过眼镜我们也能够在场景中进行相关的交互,用眼镜进行的交互是凝视交互,我们只要在交互区域进行凝视,通过设定好的凝视时间之后,我们就能进行场景交互。

一、场景搭建

在场景中,我们可以通过眼镜的凝视功能去凝视物体,然后显示物体名字。要想在unity中运用暴风魔镜,要先下载暴风魔镜在unity中的SDK,在新建的场景中导入SDK,然后开始搭建场景,在场景中创建以下物体。

其中Canvas为画布,Text是用来显示凝视到的物体的名字。MojingMain在MojingSDK文件夹中的Prefabs文件夹下的预制体,这是用来观看场景的摄像头。HeadCtrl是眼镜的光标,用来确定眼镜看到的位置点,它在Demo文件夹中的Prefabs文件夹下的预制体。red和blue分别为红蓝两个方块。

二、功能编写

搭完场景后,接下来就是对凝视功能的设置。其中Canvas的RanderMode设置为WorldSpace,EventCamera设置为MojingMain中的MainCamera。

在EventSystem中添加脚本GazeInputModule,在red和blue两个方块上都加入凝视脚本UGuiCrossNodeBase。脚本中的Text就是画布上的Text,ClickTime为凝视的时间,Clickable为是否凝视点击,Grabable为是否抓取物体,ShowWaiting为是否显示凝视时的等待图标。

凝视脚本:

using UnityEngine;using UnityEngine.UI;using UnityEngine.SceneManagement;public class uGUICrossNodeBase : MonoBehaviour {[HideInInspector]public float HoverTime = 1f; //视线进入物体后1秒开始执行凝视public float ClickTime = 1.5f; //执行1.5秒的凝视public bool Clickable = true; //可以执行凝视事件public bool Grabable = true; //可以被抓取public bool ShowWaiting = true;//显示凝视等待光标public Text text; //文本信息private string ButtonName;//凝视的物体名字public virtual void SetSelect(bool bFlag) //视线点刚进入物体的事件{ButtonName = name;if (bFlag) { //进入物体text.text = "正在读取";}else { //离开物体text.text = "";}}public virtual void OnClick() //凝视物体的事件{ButtonName = name;text.text = ButtonName;}}

脚本的功能就是视线刚进入方块,显示正在读取的文本信息,1秒后执行开始凝视事件,凝视事件用时1.5秒,期间显示等待光标,执行完之后文本信息显示方块的名字。

三、凝视测试

运行程序,按住Alt键,移动鼠标会发现场景中的光标会随鼠标而移动。当光标移到红方块上是,显示正在读取信息,过一段时间后信息变为红方块的名字。当光标移到蓝方块上也和红方块一样,只是显示的信息为蓝方块的名字。如下图,左边为红方块的测试,右边为蓝方块的测试。

四、总结

在暴风魔镜中,如果不使用手柄对场景交互,我们就可以通过眼镜的凝视功能进行场景交互,只要设定好凝视的时间和凝视时的凝视事件也能对场景进行简单交互。在凝视设定中,画布中的摄像头要改成魔镜的摄像头,还需要提交光标预制体,方便视线的显示。对物体添加的脚本也要一一对应,缺少一个也无法实现凝视功能。这就是暴风魔镜的凝视功能的操作流程,下一次会为大家介绍HTCVive上的凝视功能操作。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。