[PSVR应用]接入[物件播放组件]问题和解决方案
<table>
<thead>
<tr>
<th>作者</th>
<th>ljx、qford</th>
</tr>
</thead>
<tbody>
<tr>
<td>创建日期</td>
<td>2024-2-29</td>
</tr>
</tbody>
</table>
<p>[TOC]</p>
<h3>一、背景</h3>
<p>PSVR工程接入重构后的物件播放器组件(1.0.1-pre0)需要解决报错问题,本文探寻物件播放器组件或应用该怎么修改才能更好地解决上述的报错问题。</p>
<h6>1、删除物件播放器组件自带的xlua库,PSVR工程已经有了自定义的xlua库</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=8956c1b099099ce47ba18b7d85919824&amp;file=file.png" alt="" /></p>
<h6>2、删除物件播放器组件自带的高亮库,PSVR工程已经有了自定义的高亮库</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=a5c99aca1f548af36d1da22d153efae6&amp;file=file.png" alt="" /></p>
<h6>3、删除PSVR工程下的这些库,这些库可以使用物件播放器组件自带的</h6>
<p><strong>同时物件播放器组件依赖的这些库要升级到PSVR工程用的版本,也就是图示的版本</strong>
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7ec5c71e351829b5803e8647ee0cb945&amp;file=file.png" alt="" /></p>
<h6>4、注释物件播放器组件URP管线加载类,PSVR工程自己有一套管线</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=4179a17fae22e44c1a870f97c69ca0bd&amp;file=file.png" alt="" /></p>
<h6>5、这个宏注释要删掉,开启包含的命名空间引用,这是物件播放器组件代码问题</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=206d7d4e3a1aded0ebc16c9ecae9d3de&amp;file=file.png" alt="" /></p>
<h6>6、engine.binding里的这个类是干什么的?里面调用的接口都是旧的,先注释掉</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=faab88437ca6102d2ef5ec5bdd4fceb3&amp;file=file.png" alt="" /></p>
<h6>7、暂时移除步骤包和相关引用代码,这个包不在物件播放器组件的范围内,需要考虑怎样额外引入PSVR工程</h6>
<p>"com.nd.vlab_stuctstep_rule": "1.1.1-dev-pre2",</p>
<h6>8、暂时注释对Vlab.Text2Speak的引用,这个包不在物件播放器组件的范围内,需要考虑怎样额外引入PSVR工程</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=fd77f0519982e4ba3bc86b52a0fd9028&amp;file=file.png" alt="" /></p>
<h6>9、equipmenteditor包里的部分接口是旧的,先注释equipmenteditor包里的代码</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=9fd33dd5028d54dfd09c93e74c878d17&amp;file=file.png" alt="" /></p>
<h6>10、修改单例Singleton的引用命名空间</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=149307c4012b3e3ddb3914e0e66b86c7&amp;file=file.png" alt="" /></p>
<h6>11、以下是若雯在物件播放器组件 0.5.0 版本为PSVR工程适配做的修改,需要合理同步到物件播放器组件最新版本</h6>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=86afcdf224a90f3f7858457c50859392&amp;file=file.png" alt="" /></p>
<h3>二、问题归纳,给出解决方案</h3>
<h6>- 以上 1、2、3、4、11点问题为:PSVR工程需要自定义第三方库(高亮、XLua等)或是自定义依赖引擎组件的版本</h6>
<pre><code>解决方案
1、PSVR工程引入物件播放器组件包后,再自行做适配修改
优点:物件播放器组件不需要做适配的修改,降低维护成本
缺点:PSVR工程每次更新物件播放器组件包都要做该修改操作,影响PSVR版本开发速度
2、物件播放器组件专门新建一个适配PSVR的分支
优点:使物件播放器组件能够快速响应PSVR版本的需求,提高PSVR版本开发速度
缺点:分支维护与发包会产生一定工作量
3、第三方库和物件播放器组件需要以开放接口或配置的方式给PSVR工程使用,不允许存在PSVR的特供版
优点:不存在多个平台版本的组件或分支,后期维护成本低
缺点:需要做适配工作并测试,会降低前期PSVR版本的开发速度</code></pre>
<h6>- 以上 7、8点问题为:PSVR工程依赖了原播放器的组件包(如步骤判定),但这些包不在物件播放器组件的范围内</h6>
<pre><code>解决方案
PSVR工程引用的原播放器的组件包需要依赖解耦,使其可单独引入</code></pre>
<h6>- 以上5、6、9、10点问题与PSVR开发同学沟通处理即可</h6>
<h3>三、处理结果</h3>
<p>解决以下问题使用的物件播放器组件版本为:com.nd.vlab-equipmentplayer 1.0.3-pre0</p>
<ul>
<li>
<p>问题 1、2
物件播放器组件已同步PSVR工程下的xlua和高亮库修改,这两个库使用物件播放器组件的,删除PSVR工程下的这两个库</p>
</li>
<li>
<p>问题 3
物件播放器组件依赖的引擎组件版本都是正式版,如需使用其他引擎组件版本请自行在PSVR工程内修改</p>
</li>
<li>
<p>问题 4
PSVR工程添加宏(USE_CUSTOM_PIPE)后可屏蔽物件播放器组件默认管线加载</p>
</li>
<li>
<p>问题 5、11
物件播放器组件已做处理
另外,同步了物件播放器组件PSVR分支修改的两个接口,请使用EquipmentManager调用
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=e2de99641e5addb8a21de766a1620e04&amp;file=file.png" alt="" />
<img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=b5d5cd6105ed6e394e2a82bd183ed80b&amp;file=file.png" alt="" /></p>
</li>
<li>
<p>问题 6、9、10
物件播放器组件已更新接口,请参照[【接口文档】](<a href="https://www.showdoc.com.cn/eleeditor/10639282087809847">https://www.showdoc.com.cn/eleeditor/10639282087809847</a> "【接口文档】"),PSVR工程自行修改</p>
</li>
<li>问题 7、8
这些包不在物件播放器组件的范围内,请联系相关同学将依赖解耦后再导入PSVR工程</li>
</ul>