Unity导入Pico SDK后如何进行实际开发呢?想必大家都很好奇。从去年的省赛到今年的国赛, 本人研究Pico有快一年了,刚开始学习的时候自己翻过很多的博主文章,都没有找到自己想要的知识,从那时起,我便下定决心,等国赛过后 自己要写写虚拟设备的使用了,那就以我的视角来为大家讲解Pico SDK的正确使用。
今天主要讲的内容是Pico SDK在Unity中第一人称视角的移动方式
下图是已经将Pico SDK导入到了Unity3D中了
1. 删除Unity自带的Camera摄像机,找到Pvr_UnitySDK子文件夹Prefabs,将Prefabs文件夹下的 Pvr_UnitySDK预制体拖入到场景中,那么摄像头做好了。
2. 找到Pvr_Controller文件夹下的ControllerManager预制体放入到场景中,成为Pvr_UnitySDK的 子物体,与Pvr_UnitySDK中的Head同级。Pvr_UnitySDK指的是头显,Head指的是玩家的头 部,ControllerMannager指的是手柄控制器,PvrController0为左手柄,PvrController1为右手柄。
3. 找到Pvr_Controller文件夹下的Scenes文件夹,打开Scenes文件夹中的Pvr_Controller_Demo场景,找到Pvr_UnitySDK的子物体HeadControl,放入Assets目录中,再回到之前的场景,步骤如下图所示
4.将Assets目录下的HeadControl放入到Pvr_UnitySDK中,与Head,ControllerManager同级,效果图如下
5.在Event组件中添加脚本Pvr_Input Module(Script),此脚本是PicoSDK自带的,直接添加即可 ,Pvr_Input_Module脚本中有个Confirm Btn选项,这里可以选择玩家与UI交互的事件按钮,默认是选择TouchPad,即手柄的黑色圆角按钮;
6.ControllerManager组件中添加脚本Pvr_Controller Demo(Script),Pvr_Controller Demo(Script)脚本是PicoSDK文件夹自带的,直接添加即可;
7.打开ControllerManager组件中的Pvr_Controller Demo(Script)的脚本,在脚本上添加射线点击移动方法,添加的代码如图所示
如图所示,添加的射线检测移动代码就完成了,代码如下:
//增加
public Transform person;//移动的人物
public string moveLayer;//可移动的层级
public LineRenderer rayLine_zengjia;//手柄下的ray_LengthAdaptive;
//新增加
if (1 << hit.transform.gameObject.layer == LayerMask.GetMask(moveLayer))
{
rayLine_zengjia.material.color = Color.green;//当可移动的时候射线变为绿色
if ( Controller.UPvr_GetKeyDown(0, Pvr_KeyCode.TRIGGER) || Controller.UPvr_GetKeyDown(1, Pvr_KeyCode.TRIGGER) || Input.GetMouseButtonDown(0) )
{
person.position = new Vector3(hit.point.x, person.position.y, hit.point.z);
}
}
else
{
rayLine_zengjia.material.color = Color.red;//当不可移动的时候射线变为红色
}
8.在ControllerManager组件上进行如下操作,步骤图与效果图如下
9.创建地面,我这里是创建了一个3D物体Cube,设置Cube物体的Layer属性,将Layer属性设为moveLayer,表示这是可移动的层级,步骤如下
10,到此,PicoSDK在Unity3D中完成了第一人称漫游,当扣动手柄扳机后,手柄射线指向处,就是第一人称玩家移动的目标点。
11. Alt+鼠标左键 就是 Pico的扳机键,
后续我也会给大家讲一下Pico的另一种移动方式
有对Pico感兴趣的可以看我的其他文章
要是有疑问大家可以加我微信详聊 yf1553653788