示例#1
0
    private void OnDisable()
    {
        AkRoomPortalManager.RegisterRoomUpdate(this);

        RoomCount--;
        AkSoundEngine.RemoveRoom(GetID());
    }
示例#2
0
    private void OnEnable()
    {
        var roomParams = new AkRoomParams();

        roomParams.Up.X = transform.up.x;
        roomParams.Up.Y = transform.up.y;
        roomParams.Up.Z = transform.up.z;

        roomParams.Front.X = transform.forward.x;
        roomParams.Front.Y = transform.forward.y;
        roomParams.Front.Z = transform.forward.z;

        roomParams.ReverbAuxBus  = reverbAuxBus.Id;
        roomParams.ReverbLevel   = reverbLevel;
        roomParams.WallOcclusion = wallOcclusion;

        roomParams.RoomGameObj_AuxSendLevelToSelf = roomToneAuxSend;
        roomParams.RoomGameObj_KeepRegistered     = roomToneEvent.IsValid() ? true : false;

        RoomCount++;
        AkSoundEngine.SetRoom(GetID(), roomParams, name);

        /// In case a room is disabled and re-enabled.
        AkRoomPortalManager.RegisterRoomUpdate(this);
    }
示例#3
0
    protected override void Awake()
    {
        var collider = GetComponent <UnityEngine.BoxCollider>();

        collider.isTrigger = true;

        portalTransform = new AkTransform();
        portalTransform.Set(collider.bounds.center.x, collider.bounds.center.y, collider.bounds.center.z, transform.forward.x,
                            transform.forward.y, transform.forward.z, transform.up.x, transform.up.y, transform.up.z);

        extent   = new AkVector();
        extent.X = collider.size.x * transform.localScale.x / 2;
        extent.Y = collider.size.y * transform.localScale.y / 2;
        extent.Z = collider.size.z * transform.localScale.z / 2;

        RegisterTriggers(closePortalTriggerList, ClosePortal);

        AkRoomPortalManager.RegisterPortal(this);

        base.Awake();

        //Call the ClosePortal function if registered to the Awake Trigger
        if (closePortalTriggerList.Contains(AWAKE_TRIGGER_ID))
        {
            ClosePortal(null);
        }
    }
示例#4
0
    protected override void OnDestroy()
    {
        base.OnDestroy();

        UnregisterTriggers(closePortalTriggerList, ClosePortal);

        if (closePortalTriggerList.Contains(DESTROY_TRIGGER_ID))
        {
            ClosePortal(null);
        }

        AkRoomPortalManager.UnregisterPortal(this);
    }
    public void LateUpdate()
    {
#if UNITY_EDITOR
        if (!IsSoundEngineLoaded)
        {
            return;
        }
#endif

        //Execute callbacks that occurred in last frame (not the current update)
        AkRoomPortalManager.UpdatePortals();
        AkCallbackManager.PostCallbacks();
        AkBankManager.DoUnloadBanks();
        AkSoundEngine.RenderAudio();
    }