CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
[CriAtom] 收发器

范例内容

概述

cri4u_samples_criatom_adv07_screenshot.png

此范例演示了如何使用收发器功能表现空间声音。

操作方法

单击[Outside]按钮,将摄像机(带有收听者)从房间移动至外面(Outside)。
单击[Inside]按钮,将摄像机从当前位置返回到初始位置(Inside)。

在单击按钮并移动摄像机的同时,从收听者听到的声音方向会根据与声源和收发器的位置关系而产生变化。

场景信息


中间件 CRI ADX (CRI Atom)
范例 进阶范例
存储路径 /cri/unity/samples/UnityProject/Assets/Scenes/criatom/advanced/
场景文件 Scene_07_Transceiver.unity


程序说明

设置3D区域

根据以下规则控制是直接从声源听到声音,还是通过收发器听到声音:
  • 声源和收听者属于同一区域时,则将直接从声源中听到声音
  • 声源和收听者属于不同区域时,收发器会合并与自己属于同一区域的声音,并输出给不同区域的收听者
    为了实现有如“当收听者在室内时,通过收发器播放室外声音”和“当收听者在室外时,通过收发器播放室内声音”的操作时,需要使用以下方法切换区域。
    /* 代码摘录 */
    /* 添加Monobehaviour到房间墙壁形状的立方体上 */
    /* 进入房间时回调 */
    private void OnTriggerEnter(Collider other) {
    var listener = other.GetComponent<CriAtomListener>();
    if (listener != null) {
    listener.region3d = regionIn;
    transceiver.region3d = regionOut;
    }
    }
    /* 离开房间时回调 */
    private void OnTriggerExit(Collider other) {
    var listener = other.GetComponent<CriAtomListener>();
    if (listener != null) {
    listener.region3d = regionOut;
    transceiver.region3d = regionIn;
    }
    }