/// <summary>
    ///     Sends the mesh's triangles and their acoustic texture to Spatial Audio
    /// </summary>
    public void SetGeometry()
    {
        if (!AkSoundEngine.IsInitialized())
        {
            return;
        }

        if (Mesh == null)
        {
            UnityEngine.Debug.LogFormat("SetGeometry({0}): No mesh found!", gameObject.name);
            return;
        }


        SetGeometryFromMesh(
            Mesh,
            AcousticTextures,
            OcclusionValues,
            transform,
            GetID(),
            AkRoom.GetAkRoomID(AssociatedRoom && AssociatedRoom.enabled ? AssociatedRoom : null),
            EnableDiffraction,
            EnableDiffractionOnBoundaryEdges,
            name);
    }
Exemple #2
0
 public void SetRoom(int in_roomIndex, AkRoom in_room)
 {
     if (rooms[in_roomIndex] != in_room)
     {
         rooms[in_roomIndex] = in_room;
     }
 }
    private void Update()
    {
        if (!UnityEditor.EditorApplication.isPlaying)
        {
            return;
        }

        if (previousMesh != Mesh ||
            previousPosition != transform.position ||
            previousRotation != transform.rotation ||
            previousScale != transform.localScale ||
            previousEnableDiffraction != EnableDiffraction ||
            previousEnableDiffractionOnBoundaryEdges != EnableDiffractionOnBoundaryEdges ||
            previousAcousticTextures != AcousticTextures ||
            previousTransmissionLossValues != TransmissionLossValues)
        {
            UpdateGeometry();
        }

        if (previousAssociatedRoom != AssociatedRoom)
        {
            SetAssociatedRoom(AssociatedRoom);
        }

        previousAssociatedRoom    = AssociatedRoom;
        previousMesh              = Mesh;
        previousPosition          = transform.position;
        previousRotation          = transform.rotation;
        previousScale             = transform.localScale;
        previousEnableDiffraction = EnableDiffraction;
        previousEnableDiffractionOnBoundaryEdges = EnableDiffractionOnBoundaryEdges;
        previousAcousticTextures       = AcousticTextures;
        previousTransmissionLossValues = TransmissionLossValues;
    }
    public static void ObjectExitedRoom(UnityEngine.Collider collider, AkRoom room)
    {
        if (!collider)
        {
            return;
        }

        ObjectExitedRoom(AkRoomAwareObject.GetAkRoomAwareObjectFromCollider(collider), room);
    }
    private void OnEnable()
    {
        m_AkRoom = target as AkRoom;

        reverbAuxBus  = serializedObject.FindProperty("reverbAuxBus");
        reverbLevel   = serializedObject.FindProperty("reverbLevel");
        wallOcclusion = serializedObject.FindProperty("wallOcclusion");
        priority      = serializedObject.FindProperty("priority");
    }
Exemple #6
0
    public void AddAkRoom(AkRoom room)
    {
        int index = activeRooms.BinarySearch(room, AkRoom.s_compareByPriority);

        if (index < 0)
        {
            activeRooms.Insert(~index, room);
        }
    }
Exemple #7
0
        public void Add(AkRoom room)
        {
            var index = BinarySearch(room);

            if (index < 0)
            {
                rooms.Insert(~index, room);
            }
        }
Exemple #8
0
 public static void RegisterRoomUpdate(AkRoom room)
 {
     m_UpdatedRooms.Add(room);
     foreach (AkRoomPortal portal in m_Portals)
     {
         if (!m_PortalsToUpdate.Contains(portal) && (room == portal.frontRoom || room == portal.backRoom))
         {
             m_PortalsToUpdate.Add(portal);
         }
     }
 }
    public static void ObjectExitedRoom(AkRoomAwareObject roomAwareObject, AkRoom room)
    {
        if (!roomAwareObject || !room)
        {
            return;
        }

        room.Exit(roomAwareObject);
        roomAwareObject.ExitedRoom(room);
        RegisterRoomAwareObjectForUpdate(roomAwareObject);
    }
Exemple #10
0
 public int BinarySearch(AkRoom room)
 {
     if (room)
     {
         return(rooms.BinarySearch(room, s_compareByPriority));
     }
     else
     {
         return(-1);
     }
 }
Exemple #11
0
    private void OnEnable()
    {
        m_PostEventHandlerInspector.Init(serializedObject, "triggerList", "Trigger On: ", false);

        m_AkRoom = target as AkRoom;

        reverbAuxBus     = serializedObject.FindProperty("reverbAuxBus");
        reverbLevel      = serializedObject.FindProperty("reverbLevel");
        transmissionLoss = serializedObject.FindProperty("transmissionLoss");
        priority         = serializedObject.FindProperty("priority");
        roomToneEvent    = serializedObject.FindProperty("roomToneEvent");
        roomToneAuxSend  = serializedObject.FindProperty("roomToneAuxSend");
    }
Exemple #12
0
    public bool Overlaps(AkRoom room)
    {
        FindOverlappingRooms(roomList);

        for (int i = 0; i < MAX_ROOMS_PER_PORTAL; ++i)
        {
            if (roomList[i].Contains(room))
            {
                return(true);
            }
        }

        return(false);
    }
    public static void ObjectEnteredRoom(AkRoomAwareObject roomAwareObject, AkRoom room)
    {
        if (!roomAwareObject || !room)
        {
            return;
        }

        var enteredRoom = room.TryEnter(roomAwareObject);

        if (enteredRoom)
        {
            roomAwareObject.EnteredRoom(room);
            RegisterRoomAwareObjectForUpdate(roomAwareObject);
        }
    }
 public void SetAssociatedRoom(AkRoom room)
 {
     if (AssociatedRoom != room)
     {
         AssociatedRoom = room;
         UpdateGeometry();
         if (AssociatedRoom != null)
         {
             AkRoomManager.RegisterReflector(this);
         }
         else
         {
             AkRoomManager.UnregisterReflector(this);
         }
     }
 }
Exemple #15
0
 public static void RegisterRoomUpdate(AkRoom room)
 {
     if (m_Instance != null)
     {
         for (var i = 0; i < m_Instance.m_Portals.Count; ++i)
         {
             var portal = m_Instance.m_Portals[i];
             if (!m_Instance.m_PortalsToUpdate.Contains(portal) &&
                 (room == portal.frontRoom || room == portal.backRoom || portal.Overlaps(room)))
             {
                 m_Instance.m_PortalsToUpdate.Add(portal);
             }
         }
         for (var i = 0; i < m_Instance.m_Reflectors.Count; ++i)
         {
             var reflector = m_Instance.m_Reflectors[i];
             if (!m_Instance.m_ReflectorsToUpdate.Contains(reflector) && (reflector.AssociatedRoom == room))
             {
                 m_Instance.m_ReflectorsToUpdate.Add(reflector);
             }
         }
     }
 }
Exemple #16
0
 public bool Contains(AkRoom room)
 {
     return(BinarySearch(room) >= 0);
 }
Exemple #17
0
 public int BinarySearch(AkRoom room)
 {
     return(room ? rooms.BinarySearch(room, s_compareByPriority) : -1);
 }
Exemple #18
0
 public void SetBackRoom(AkRoom room)
 {
     SetRoom(0, room);
 }
Exemple #19
0
 public void Remove(AkRoom room)
 {
     rooms.Remove(room);
 }
Exemple #20
0
    static void SelectAkRoomAuxBusInWwisePicker(UnityEditor.MenuCommand command)
    {
        AkRoom component = (AkRoom)command.context;

        SelectInWwisePicker(component.reverbAuxBus.ObjectReference.Guid);
    }
Exemple #21
0
    static void SelectAkRoomEventInWwisePicker(UnityEditor.MenuCommand command)
    {
        AkRoom component = (AkRoom)command.context;

        SelectInWwisePicker(component.roomToneEvent.ObjectReference.Guid);
    }
Exemple #22
0
 /// <summary>
 ///     Called when exiting a room.
 /// </summary>
 /// <param name="room">The room.</param>
 public void ExitedRoom(AkRoom room)
 {
     roomPriorityList.Remove(room);
 }
Exemple #23
0
 public void EnteredRoom(AkRoom room)
 {
     m_roomData.AddAkRoom(room);
     SetGameObjectInHighestPriorityRoom();
 }
Exemple #24
0
 public void ExitedRoom(AkRoom room)
 {
     m_roomData.RemoveAkRoom(room);
     SetGameObjectInHighestPriorityRoom();
 }
Exemple #25
0
 private bool IsRoomActive(AkRoom in_room)
 {
     return(in_room != null && in_room.isActiveAndEnabled);
 }
Exemple #26
0
 public static ulong GetAkRoomID(AkRoom room)
 {
     return(room == null ? INVALID_ROOM_ID : room.GetID());
 }
Exemple #27
0
 public void SetBackRoom(AkRoom room)
 {
     UnityEngine.Debug.LogFormat("SetBackRoom is deprecated. Highest priority, active and enabled room will be automatically chosen. Make sure room priorities and game object placements are correct.");
 }
Exemple #28
0
 private void SetGameObjectInRoom(AkRoom room)
 {
     AkSoundEngine.SetGameObjectInRoom(gameObject, room == null ? AkRoom.INVALID_ROOM_ID : room.GetID());
 }
Exemple #29
0
 public bool Contains(AkRoom room)
 {
     return(room && rooms.Contains(room));
 }
Exemple #30
0
 /// <summary>
 ///     Called when entering a room.
 /// </summary>
 /// <param name="room">The room.</param>
 public void EnteredRoom(AkRoom room)
 {
     roomPriorityList.Add(room);
 }