领悟
导入SteamVR和VRTK,SteamVR要和CameraRig位置保持一致。
1.可以创建多个scene,然后进行连接跳转。但是创建好之后要自己重新导回scene
附:删除MainCamera,添加SteamVR和CameraRiq是必须的。
2.实现瞬移功能: Vivo Teloport
(1)然后给左右手柄:VRTK_ControllerEvents,接收手柄的所有输入【基础类】。
添加脚本VRTK_BezierPointer,贝塞尔曲线的指针;
(2)然后给CameraRig添加VRTK_Basic Teleport,处理camera的一些移动。
出现了一个问题:手柄瞬移,但是视角没有瞬移。
MainCamera要删掉,不然手柄没办法和视角同步。
3.添加UI
(1)添加UI-Canvas-Image,把Canvas的Render Mode改成‘世界’
(2)添加图片,改类型为sprite(如果不转不能添加到image上面)
(3)增加交互功能。button,添加Button组件(使用VRTK) VRTK_Button,然后添加UI-Button改变颜色
(4)找到左手柄添加脚本:监听按键指针--“VRTK_Controller Events”,激光指针脚本“VRTK_Simple Pointer(把左手柄加进去)”--显示激光射线(和上面贝塞尔很像)
添加和UI交互的脚本(指针)--VRTK_UI Pointer(和UI交互的指针)。同样的脚本,给右手柄也添加一份。
(5)做一个UI列表:在Canvas下添加Panel,添加布局组件(设置多行多列):Grid Layout Group;然后在Panel下面加入8个button;然后添加8张图片,改成Sprite属性(凡是想变成UI的图片,都要变成Sprite属性),然后点击右下角的Apply,然后再button下的Image-Source Image添加图片,然后设置间隔,限制为两行。然后设置指向(highlighted)和点击(pressed)后颜色。
(6)这节说一说VR的交互,写代码驱动逻辑
注:图片是要加到button上的(image),开始按钮使用panel(添加Grid Layout Group,添加完这个之后没办法调整左右上下变化,重新改用image)
写好脚本之后,指定panellist和startbutton,在开始按钮-image下的On Click添加事件,然后把Canvas拖进去,然后选择UI.ShowPanelList.如果需要跳转主界面,我只需要在ShowPanelList里面写scene写true就好了。
normalized
4.弓箭制作流程:
(1)箭的细节,复制一份,然后把源文件来出来保存到prefabs,复制后的那份做弓箭起始点。把ArrowStart属性只保留transform。
(2)调节好弓的大小之后放到左手柄,记得保证位置全为0(这样才能贴在手柄上)
5.给prefab添加声音:
public AudioClip Clip;
AudioSource _AudioSource; //这两个是必须的
然后在目标位置放置:
_AudioSource.PlayOneShot(Clip)
然后需要在prefab上添加AudioSource组件就可以了。