Unity关于Oculus Quest2 入门开发:注意事项

前言

首先在这里感谢支持我的小可爱们,谢谢你们的支持,我决定把这个系列一直写下去,直到我不再干这行,关于Oculus的开发相关博文都会放在“Oculus Quest2”分类专栏,喜欢的可以收藏关注下,随时可在评论区留下你的疑惑,共勉吧!
关于此篇,我先把遇到的注意事项,放在博文里,后续会不断的添加和完善,避免小伙伴们踩坑。

注意事项:

1、首先,你要清楚的知道,Oculus Quest2是一体机,它适合的平台是安卓(iso端暂时没试过,有试过可以的伙伴可以评论区告知我),通俗的将就是移动端。那你无论是用哪一款开发引擎,必备可少的Android相关的API,关于安卓的开发这里不多说,后面会将一下具体的应用,和PC或编辑器下有什么不同。这里你要明白的是:Oculus Quest2(后面再提到这个用“Oculus2”简称)对应的安卓,即.apk。了解这个,接下来的注意事项,就好明白了。
Unity关于Oculus Quest2 入门开发:注意事项_第1张图片

2、想要了解Oculus2,你要知道它的构造,也就是CPU处理器和GPU显卡。先说CPU,由于我并未拿到官方说明书,也不知道说明书上是否有说明。我在经过大量开发测试后发现,它的CUP是单线程的,不支持多线程处理,有的小伙伴问了:这跟开发有什么关系?有的,比如我在开发时,就遇到这个问题:博主这里在使用TCP网络通信做的客户端,并将这个软件内置入Oculus2,由于需要不断的接收服务端发送来的消息,需要循环,于是我开了一个线程来放这个Recive,到这里并没有什么问题。但需求是,我通过接收到的消息去打开我另外一个进程,而刚好另外一个进程中也包含一个线程,结果可想而知,当前的客户端自然会被关闭。这里有人问为为什么不用协程?扯呢,协程是开启在线程上的,但不占用线程的处理,所以啊,一样卡死。简言说,oculus2不支持多线程处理,它的CPU没你的手机优秀。(啰嗦的多了,你们遇到就知道了,坏笑!)另外,GPU呢,它没GPU,完了。不明白的小伙可以测试一下,使用SystemInfo.graphicsDeviceID返回值是Int,这SystemInfo就是官方给的信息类,可以返回相关硬件设备信息,只可读。SystemInfo.graphicsDeviceID就是返回显卡的ID,默认是0。懂了吧,博主测完,也懵了,原来Oculus2全靠CPU来烘啊,在这里Pico(小鸟看看出品,也是一体机,博主这里用过的是G2)还有GPU呢!
Unity关于Oculus Quest2 入门开发:注意事项_第2张图片

3、基于第二条,你应该知道了,Oculus2渲染不了网格特别密集的模型,举个简单的例子:Terrain地形大小2000*2000是极限,但是,树不能有,草也不能有。这里的树和草是网格的那种模型,即使你做了Lod也没用。必须使用Texture的树或者草(也就是面片),不然卡的PPT,没法跑。当场景中有大量物体时,除了需要勾选静态外,你最好不要使用Realtime,请使用Baked。虽然实时光源效果好,别用!最好使用低模资源,Oculus2的性能针对不如你的手机。另外,编辑器下烘焙的场景,看到的效果,在Oculus2下,会有色差。所以最终效果不能以编辑器下看到的为主,多调调,这个我帮不了你了。
Unity关于Oculus Quest2 入门开发:注意事项_第3张图片

4、经常会用到的,当你发布完apk装上Oculus2,只是看看场景效果并添加退出功能时,你可以按下手柄上的“o”键,可以强制退出。博主我当时只会关机重启,欲哭无泪啊!
Unity关于Oculus Quest2 入门开发:注意事项_第4张图片
5、有位粉丝私信我说:2020版本的Unity如何找到XR Interaction Toolkit。防止出现疑惑!2020版如下导入:
Unity关于Oculus Quest2 入门开发:注意事项_第5张图片Unity关于Oculus Quest2 入门开发:注意事项_第6张图片Unity关于Oculus Quest2 入门开发:注意事项_第7张图片Unity关于Oculus Quest2 入门开发:注意事项_第8张图片

结束语

此篇博文会一直更新下去,还是此篇,后面我会把我遇到的都写进去,如果你也遇到了问题,欢迎在评论区留言,看到了就会回复,留言问题也会将其放入此篇中。欢迎大家评论!

你可能感兴趣的:(XR开发,unity,android)