导入成功后会在Project窗口中出现一个SteamVR文件夹和SteamVR_Input文件夹。
为了使整个地面都能移动,对该地面进行扩充,使其填满整个房屋。单击Scenes窗口右上角的方向标记,选择以顶视图的方式进行添加。沿选中地面的边框将其拖拽到最大,这里只能到床边位置,如图11所示。
单击dfk_floor_01(8)脚本,在Inspector面板的Teleport Area脚本下勾选Locked,使该区域被锁定,成为无法行走的区域。dfk_floor_01(4)脚本不变,即对应的区域没有被锁定,可以行走。
当在可行走区域内按下手柄,会有一个绿色的抛物线和圆环出现,松开手柄可以移动到圆环所在位置。当抛物线出现在锁定区域时,圆环会变成一个红色的禁止符号,如图15所示,表示无法进入到该区域。这样就实现了在房间场景中的移动功能。
SteamVR本身已经提供了一些完整的可拾取物体的功能,用户可以直接使用。在Project窗口中搜索ThrowableCube,将其拖拽到Scene窗口的桌面上。 运行查看效果,可看到当手柄靠近立方体时,立方体会变成蓝色,当按下手柄时可拾取该立方体,这时物体颜色变成白色,如图16所示。
要想通过手柄拾取或放下物体时,需对物体进行响应Hand交互事件设置。Hierarchy窗口中单击ThrowableCube,将滚动条滑到Inspector窗口下部可看到一个交互组件Interactable Hover Events(悬停事件),下面对应有4个事件:On Hand Hover Begin() 代表手柄碰到物体的开始事件;On Hand Hover End() 代表手柄离开物体的结束事件;On Attached To Hand() 代表手柄可响应抓取物体的事件;On Detached From Hand() 代表手柄响应放下物体的事件。
找到水晶原有的材质球,单击Element0后的dfk_crystal_01_blue,找到Project窗口中对应的材质球,以这个材质球为默认的颜色,在手柄退出时会采用这个默认的蓝色。
将其拖拽到On Hand Hover End() 事件后的方框内,再找到文件名为dfk_candles_01的材质球,将其拖拽到On Hand Hover Begin() 事件后的方框内,将该黄色材质球作为手柄进入时使用的默认颜色。
至此对蓝色水晶的状态、响应等进行了替换,在Hierarchy窗口将蓝色水晶的名字由ThrowableCube修改为ThrowableWapan。运行查看效果,当手柄进入交互区可拾取物体交互区域时,可拾取物体变为黄色;当手柄离开时,可拾取物体变为蓝色;当使用手柄拾取物体时,物体也是蓝色,如图8.49所示。