栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Cocos2d-x

Unity-Wwise-Oculus踩坑笔记

Cocos2d-x 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity-Wwise-Oculus踩坑笔记

记录下Unity集成Wwise和Oculus过程中的碰到的一些问题

官方Oculus Spatializer for Wwise 接入文档

目录
    • Wwise导入OSP
    • Unity中的Wwise插件导入OSP
    • Unity接入OSP
    • 打包配置
    • 2022-1-22更新,Unknown game object ID问题


Wwise导入OSP

Wwise安装目录下需要导入对应版本的dll文件(下载地址 Oculus Spatializer Wwise)
导入dll之后重启Wwise,混音器选项中才会有OSP


Unity中的Wwise插件导入OSP

在Assets/Wwise目录中,导入对应的发布平台的库文件(这一步跟着官方文档走就好了,注意Oculus是Android平台)
需要注意的是库文件存放路径,官方文档写的是拷贝到Wwise/Deployment下

新版本Wwise应该是修改了库文件的加载路径,这里看Unity中打印可以知道这里路径配置不对的话,可能会报 Could not find plug-in dynamic library 的错误


Unity接入OSP

3.Unity接入OSP(下载地址 Oculus Spatializer Unity)
下载官方提供的package包导入,在Project Settings / Audio中取消勾选Disable Unity Audio,并将Spatializer Plugin设置为OculusSpatializer

在集成Wwise的时候,会自动勾选Disable Unity Audio,一般情况下(只有Unity+Wwise),禁用Unity的音效系统是无可厚非的,但如果需要对接Oculus,则需要取消勾选,并设置Spatializer Plugin为OSP,否则会导致打出来的包在Oculus上运行没有声音。


打包配置

Project Settings - Wwise Editor - Asset Management,勾选Copy SoundBanks at pre-Build step。
打包的时候,会自动把对应平台的音效包导入到StreamingAssets中打包。


2022-1-22更新,Unknown game object ID问题

场景:

  1. 播放音效时,先注册GameObject AkSoundEngine.RegisterGameObj(go);
  2. 音效播放完毕后,回收GameObject并设置坐标 go.transform.localPosition = Vector3.zero;
  3. 反注册GameObject AkSoundEngine.UnregisterGameObj(go);

按上面的流程,会出现Unknown GameObject ID报错,这是由于GameObject反注册后视图修改它的位置。
因为Wwise会延迟同步Unity中GameObject的位置,所以需要延迟1帧再进行反注册。

分析:
通过 Wwise Profiler -> Capture Log 可以发现,设置localPosition后再UnregisterGameObj,实际执行顺序是先Unregister再SetPosition。

延迟一帧调用Unregister,会发现同一帧内,先执行SetPosition,再执行Unregister,这达到预期效果。

再延迟两帧调用Unregister,会发现SetPosition和Unregister依次在不同帧执行

官方提供的处理思路  Unknown/Dead game object ID used in [FunctionName]


✍如果有不正确的地方,还望指正

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/896694.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号