Pico SDK在Unity中如何控制移动

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

猜你喜欢

转载自blog.csdn.net/Ai1114/article/details/125209941