https://c1.omgxr.top/0df8a532ec9e9227f1fecc37840fb171 user_v1_2x.png.png
咖啡-独立游戏僧
元宇宙原住民 2022-06-23 / 来自  产业动态社群 omgxr_s_y1.png.png 31
【PicoNeo3开发001】从零开始搭建PicoNeo3的Unity开发环境



Hey,大家好,我是咖啡,一个沉迷元宇宙的男人。

今天我们从零开始搭建PicoNeo3的UnityURP开发环境。

本来打算做视频,但是剪辑真的是我的弱项,本来很清晰的东西,录制视频反而丢了很多细节,所以还是写文本吧。

虽然文本会有些枯燥,但是按照步骤来,应该是不会有问题的。

如果有问题,那就留言交流吧。

文中有提到上期视频的网址,如果有疑问的话,可以去咖啡的视频中找到“000”开头的开发视频。



环境搭建

1、安装Unity。在咖啡上一期视频介绍的Unity官网中,我们可以下载到最新的UnityHub。

UnityHub是unity自身的管理工具,在Unityhub中,我们可以下载到当前适用版本的Unity

我们选择自己需要的Unity版本,勾选android相关组件,点击安装,等待安装完成就可以了。

当前因为unity2021中有很多问题,比如VEG不能在android平台使用,2021的URP开启抗锯齿,在PicoNeo3上性能消耗及其严重,所以推荐安装2020LTS版本。

2、还是从上一期提到的网址,pico开发者平台下载UnityXRsdk备用

3、创建Unity工程


    注意:

        1、不要将工程创建到unity安装目录中

        2、工程目录路径不要含有中文


4、在unity ProjectSetting窗口中,选择XRPluginManagement,点击Install XR Plugin Management进行安装

5、引入new Input System:打开unity的packagemanager,左上角加号右边下拉菜单,选择Packages:Unity Registry。在插件列表中找到XR Interaction ToolKit,进行安装。安装过程中会要求重启,选择Yes和I Made a Backup,Go Ahead!即可。

6、将步骤2中下载的Pico的UnityXR sdk解压并放到一个不含有中文路径的文件夹中(不必需是项目目录中)。

打开unity的PackageManager,点击左上角加号,选择add package from disk,路径选择刚刚解压的包中的package.json,双击json即可引入。

7、pico UnityXR SDK安装完成后,会弹出一个配置窗口。在开发期间,我们可以关闭User Entitlement Check,但是真正公测或上线时需要勾选并配置此项。

配置后点击Apply即可。

后面需要更改时,可以通过菜单栏的PXR_SDK——>PlatFormSetting重新打开窗口进行设置。

8、打开File——>BuildSetting选择Android平台,点击SwitchPlatform切换到Android平台(如果项目默认了Android平台,则忽略此步骤)

9、打开ProjectSetting窗口,选择XR Plugin-in Management,在右侧选择android平台,会发现多了一个PicoXR的选项,勾选PicoXR

10、还是在Projectsetting窗口,选择XRPlugin-in Managenent下得PicoXR,在右侧有两个选项,第一个是选择单目渲染(Multi View)还是双目渲染(Multi Pass),请忽略他奇怪的命名。单目渲染会节省相当多的性能,但是对于一些屏幕特效会有限制,请酌情选择。第二个选项是选择帧率上限,现在有三个档次(72,90,120),72HZ是pico上架的最低要求。这里可以默认,也可以根据项目要求选择目标帧率。

11、根据Pico的UnityXR SDK的文档,对ProjectSetting进行设置(注意配置的安卓平台,不要配置了pc平台。。。可能随着版本的更迭会有区别)。

找到Player->OtherSettings

  • 将 Minimum API Level 设置为 Android 8.0 "Oreo" (API Level 26) 或者 Android 8.0 "Oreo" (API Level 27)。注:我在选择26的时候遇到过问题,实际上推荐选择29,。

  • 将 Target API Level 设置为 Automatic (highest installed)。


    下移至 Configuration ,完成以下配置:

    • 将 Scripting Backend 设置为 IL2CPP。

    • 将 Target Architectures 设置为 ARM64。


如果我们此时在Hireracity中右键——>XR——>XR Origin(Action Based),我们会发现,创建出来的两个handcontroller所有的Action需要我们自己去配置。这显然不符合我们偷懒的特性。当然,如果你的项目需要特殊的配置,并且你对New Inputsystem了解的很透彻,可以忽略下面偷懒的步骤,直接跳到第13步。

12、

  • 打开packagemanager,选择XR Interaction Toolkit,找到右面的Samples,点击StarterAssets右面的Import,这是你会发现Project窗口中出现了一组XRI ......,这种样式的东西,在Unity中叫做预设(Preset),关于预设的作用,建议大家去unity官网了解一下,。

  • 在ProjectSetting中找到presetManager。点击AddDefaultPreset,选择ActionBasedController。

  • 将左右手预设按照下图进行配置。

  • 此时,在Hierachy中右键创建XR Origin(Action Based),我们可以发现左右手controller已经按照预设配置好了。


13、我们重新创建一个场景

  • 右键新建一个XR——>XROrigin我们看到Unity自动删除了原来场景中的MainCamera,并且自动添加了一个挂载着XR Interaction Manager的物体

  • 根据需要修改XR Origin的Tracking Origin Mode,这里一般选Floor,这里如果不选择,后面会发生一些奇怪的事情,亲自踩过坑,但是具体发生了什么。。。。我给忘了

  • 在XR Origin上挂载Pico的必备脚本PXR_Manager,

  • 在场景中新建一个空物体,挂载脚本InputActionManager,并且在Action Assets中添加我们刚刚偷懒引入的Interaction Toolkit中startAssets的XRI Default Input Actions。如果没有做这一步,手柄的位置角度以及交互是不会被响应的哦。

至此,一个最简的场景工程就创建完成啦。

打包

1、接下来我们用数据线将打开的头显连接到电脑。

2、打开File——>buildsetting。点击add open scenes将当前我们新建的场景添加到scenes in build列表中。并且删除掉创建工程时自带的场景。

3、在RunDevice后面的下拉列表中选择自己的设备(如果找不到自己的设备,点一下refresh刷新试试看,如果还没有,那就检查一下自己头显的设置里,开发者选项是否已经打开)

4、点击build and run。对于弹窗提醒我们打开用户检测,我们暂时点击Ignore,Dont remind again。暂时跳过,因为这在发布之前并没有意义。



然后等待打包完成,项目就直接运行在一体机里啦QAQ