Feat : Wwise Integration

This commit is contained in:
Alex
2026-03-23 14:28:21 +01:00
parent 627d787695
commit 004bc328ed
1149 changed files with 226567 additions and 19 deletions
@@ -0,0 +1,45 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkAcousticSurfaceArray : AkBaseArray<AkAcousticSurface>
{
public AkAcousticSurfaceArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkAcousticSurface_GetSizeOf(); }
}
protected override void DefaultConstructAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkAcousticSurface_Clear(address);
}
protected override AkAcousticSurface CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkAcousticSurface(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkAcousticSurface other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkAcousticSurface_Clone(address, AkAcousticSurface.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 29823a51368682240af45110e887f9ac
@@ -0,0 +1,148 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkAuxSendArray : System.IDisposable
{
private const int MAX_COUNT = 4;
private readonly int SIZE_OF_AKAUXSENDVALUE = AkUnitySoundEnginePINVOKE.CSharp_AkAuxSendValue_GetSizeOf();
private System.IntPtr m_Buffer;
private int m_Count;
public AkAuxSendArray()
{
m_Buffer = System.Runtime.InteropServices.Marshal.AllocHGlobal(MAX_COUNT * SIZE_OF_AKAUXSENDVALUE);
m_Count = 0;
}
public AkAuxSendValue this[int index]
{
get
{
if (index >= m_Count)
throw new System.IndexOutOfRangeException("Out of range access in AkAuxSendArray");
return new AkAuxSendValue(GetObjectPtr(index), false);
}
}
public bool isFull
{
get { return m_Count >= MAX_COUNT || m_Buffer == System.IntPtr.Zero; }
}
public void Dispose()
{
if (m_Buffer != System.IntPtr.Zero)
{
System.Runtime.InteropServices.Marshal.FreeHGlobal(m_Buffer);
m_Buffer = System.IntPtr.Zero;
m_Count = 0;
}
}
~AkAuxSendArray()
{
Dispose();
}
public void Reset()
{
m_Count = 0;
}
public bool Add(UnityEngine.GameObject in_listenerGameObj, uint in_AuxBusID, float in_fValue)
{
if (isFull)
return false;
AkUnitySoundEnginePINVOKE.CSharp_AkAuxSendValue_Set(GetObjectPtr(m_Count),
AkUnitySoundEngine.GetAkGameObjectID(in_listenerGameObj), in_AuxBusID, in_fValue);
m_Count++;
return true;
}
public bool Add(uint in_AuxBusID, float in_fValue)
{
if (isFull)
return false;
AkUnitySoundEnginePINVOKE.CSharp_AkAuxSendValue_Set(GetObjectPtr(m_Count), AkUnitySoundEngine.AK_INVALID_GAME_OBJECT,
in_AuxBusID, in_fValue);
m_Count++;
return true;
}
public bool Contains(UnityEngine.GameObject in_listenerGameObj, uint in_AuxBusID)
{
if (m_Buffer == System.IntPtr.Zero)
return false;
for (var i = 0; i < m_Count; i++)
{
if (AkUnitySoundEnginePINVOKE.CSharp_AkAuxSendValue_IsSame(GetObjectPtr(i),
AkUnitySoundEngine.GetAkGameObjectID(in_listenerGameObj), in_AuxBusID))
return true;
}
return false;
}
public bool Contains(uint in_AuxBusID)
{
if (m_Buffer == System.IntPtr.Zero)
return false;
for (var i = 0; i < m_Count; i++)
{
if (AkUnitySoundEnginePINVOKE.CSharp_AkAuxSendValue_IsSame(GetObjectPtr(i), AkUnitySoundEngine.AK_INVALID_GAME_OBJECT, in_AuxBusID))
return true;
}
return false;
}
public AKRESULT SetValues(UnityEngine.GameObject gameObject)
{
return (AKRESULT) AkUnitySoundEnginePINVOKE.CSharp_SetGameObjectAuxSendValues(AkUnitySoundEngine.GetAkGameObjectID(gameObject), m_Buffer, (uint) m_Count);
}
public AKRESULT GetValues(UnityEngine.GameObject gameObject)
{
uint count = MAX_COUNT;
var res = (AKRESULT) AkUnitySoundEnginePINVOKE.CSharp_GetGameObjectAuxSendValues(AkUnitySoundEngine.GetAkGameObjectID(gameObject), m_Buffer, ref count);
m_Count = (int) count;
return res;
}
public System.IntPtr GetBuffer()
{
return m_Buffer;
}
public int Count()
{
return m_Count;
}
private System.IntPtr GetObjectPtr(int index)
{
return (System.IntPtr) (m_Buffer.ToInt64() + SIZE_OF_AKAUXSENDVALUE * index);
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 52f83b558da6d564ea9c62ef22463b93
@@ -0,0 +1,88 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public abstract class AkBaseArray<T> : System.IDisposable
{
public AkBaseArray(int capacity)
{
m_Buffer = System.Runtime.InteropServices.Marshal.AllocHGlobal(capacity * StructureSize);
if (m_Buffer != System.IntPtr.Zero)
{
Capacity = capacity;
for (var index = 0; index < capacity; ++index)
DefaultConstructAtIntPtr(GetObjectPtr(index));
}
}
public void Dispose()
{
if (m_Buffer != System.IntPtr.Zero)
{
for (var index = 0; index < Capacity; ++index)
ReleaseAllocatedMemoryFromReferenceAtIntPtr(GetObjectPtr(index));
System.Runtime.InteropServices.Marshal.FreeHGlobal(m_Buffer);
m_Buffer = System.IntPtr.Zero;
Capacity = 0;
}
}
~AkBaseArray() { Dispose(); }
public int Capacity { get; private set; }
public virtual int Count() { return Capacity; }
protected abstract int StructureSize { get; }
/// <summary>
/// This method is called for each element of the array when the array is constructed. It should be used to clear the memory associated with an element so that it will be seen as if it had been default constructed.
/// </summary>
/// <param name="address">The address of the element</param>
protected virtual void DefaultConstructAtIntPtr(System.IntPtr address) { }
/// <summary>
/// This method is called for each element of the array when the array is disposed. It should be used to delete memory allocated by elements.
/// </summary>
/// <param name="address">The address of the element</param>
protected virtual void ReleaseAllocatedMemoryFromReferenceAtIntPtr(System.IntPtr address) { }
protected abstract T CreateNewReferenceFromIntPtr(System.IntPtr address);
protected abstract void CloneIntoReferenceFromIntPtr(System.IntPtr address, T other);
public T this[int index]
{
get { return CreateNewReferenceFromIntPtr(GetObjectPtr(index)); }
set { CloneIntoReferenceFromIntPtr(GetObjectPtr(index), value); }
}
public System.IntPtr GetBuffer() { return m_Buffer; }
private System.IntPtr m_Buffer;
protected System.IntPtr GetObjectPtr(int index)
{
if (index >= Capacity)
throw new System.IndexOutOfRangeException("Out of range access in " + GetType().Name);
return (System.IntPtr)(m_Buffer.ToInt64() + StructureSize * index);
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 273008a43f0d8a24cb3297ddea8ad275
@@ -0,0 +1,140 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
using System.Runtime.InteropServices;
/// <summary>
/// Represents a native array of AkChannelEmitters to be used with <see cref="AkUnitySoundEngine.SetMultiplePositions(UnityEngine.GameObject,AkChannelEmitterArray,ushort,AkMultiPositionType)"/>
/// </summary>
public class AkChannelEmitterArray : System.IDisposable
{
/// <summary>
/// C# representation of an AkChannelEmitter struct
/// </summary>
[StructLayout(LayoutKind.Sequential)]
private struct NativeAkChannelEmitter
{
/// Orientation of the emitter
/// We are making the assumption throughout that sizeof(AkVector) == sizeof(UnityEngine.Vector3)
public UnityEngine.Vector3 orientationFront;
/// Top orientation of the emitter
public UnityEngine.Vector3 orientationTop;
/// Position of the emitter. Shouldn't use AkVector64 because it is a class...
public double position_x;
public double position_y;
public double position_z;
/// Channels to which the above position applies.
public uint uInputChannels;
}
/// <summary>
/// Pointer to the start of the unmanaged memory buffer.
/// </summary>
public System.IntPtr m_Buffer;
private uint m_MaxCount;
private static readonly int NativeStructSize = Marshal.SizeOf<NativeAkChannelEmitter>();
private static readonly int OffFront = (int)Marshal.OffsetOf(typeof(NativeAkChannelEmitter), nameof(NativeAkChannelEmitter.orientationFront));
private static readonly int OffTop = (int)Marshal.OffsetOf(typeof(NativeAkChannelEmitter), nameof(NativeAkChannelEmitter.orientationTop));
private static readonly int OffPosX = (int)Marshal.OffsetOf(typeof(NativeAkChannelEmitter), nameof(NativeAkChannelEmitter.position_x));
private static readonly int OffPosY = (int)Marshal.OffsetOf(typeof(NativeAkChannelEmitter), nameof(NativeAkChannelEmitter.position_y));
private static readonly int OffPosZ = (int)Marshal.OffsetOf(typeof(NativeAkChannelEmitter), nameof(NativeAkChannelEmitter.position_z));
private static readonly int OffMask = (int)Marshal.OffsetOf(typeof(NativeAkChannelEmitter), nameof(NativeAkChannelEmitter.uInputChannels));
public AkChannelEmitterArray(uint in_Count)
{
m_Buffer = Marshal.AllocHGlobal((int)(in_Count * NativeStructSize));
m_MaxCount = in_Count;
Count = 0;
}
/// <summary>
/// Gets the number of emitters currently added to the array.
/// </summary>
public uint Count { get; private set; }
public void Dispose()
{
System.GC.SuppressFinalize(this);
if (m_Buffer != System.IntPtr.Zero)
{
Marshal.FreeHGlobal(m_Buffer);
m_Buffer = System.IntPtr.Zero;
m_MaxCount = 0;
}
}
~AkChannelEmitterArray()
{
Dispose();
}
// <summary>
/// Resets the iterator and the count to zero, allowing the array to be reused without reallocating memory.
/// </summary>
public void Reset()
{
Count = 0;
}
/// <summary>
/// Adds a new emitter configuration to the array.
/// </summary>
/// <param name="in_Pos">The position of the emitter.</param>
/// <param name="in_Forward">The forward orientation of the emitter.</param>
/// <param name="in_Top">The top orientation of the emitter.</param>
/// <param name="in_ChannelMask">The bitmask representing the channels, see <see cref="AkChannelConfig"/></param>
/// <exception cref="System.IndexOutOfRangeException">Thrown if the array is already full.</exception>
public void Add(AkVector64 in_Pos, UnityEngine.Vector3 in_Forward, UnityEngine.Vector3 in_Top,
uint in_ChannelMask)
{
if (Count >= m_MaxCount)
throw new System.IndexOutOfRangeException("Out of range access in AkChannelEmitterArray");
// OPTIMIZATION. Since we don't use unsafe, and we want to avoid boxing via Marshal.StructureToPtr, the only solution is to write members individually.
System.IntPtr pItem = m_Buffer + (int)(Count * NativeStructSize);
// Orientation Front
Marshal.WriteInt32(pItem, OffFront + 0, System.BitConverter.SingleToInt32Bits(in_Forward.x));
Marshal.WriteInt32(pItem, OffFront + 4, System.BitConverter.SingleToInt32Bits(in_Forward.y));
Marshal.WriteInt32(pItem, OffFront + 8, System.BitConverter.SingleToInt32Bits(in_Forward.z));
// Orientation Top
Marshal.WriteInt32(pItem, OffTop + 0, System.BitConverter.SingleToInt32Bits(in_Top.x));
Marshal.WriteInt32(pItem, OffTop + 4, System.BitConverter.SingleToInt32Bits(in_Top.y));
Marshal.WriteInt32(pItem, OffTop + 8, System.BitConverter.SingleToInt32Bits(in_Top.z));
// Position - Direct 64-bit writes from the struct fields
Marshal.WriteInt64(pItem, OffPosX, System.BitConverter.DoubleToInt64Bits(in_Pos.X));
Marshal.WriteInt64(pItem, OffPosY, System.BitConverter.DoubleToInt64Bits(in_Pos.Y));
Marshal.WriteInt64(pItem, OffPosZ, System.BitConverter.DoubleToInt64Bits(in_Pos.Z));
// Mask
Marshal.WriteInt32(pItem, OffMask, (int)in_ChannelMask);
Count++;
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: e896b051a9adc7b45a029bcb8ccae585
@@ -0,0 +1,45 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkDeviceDescriptionArray : AkBaseArray<AkDeviceDescription>
{
public AkDeviceDescriptionArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkDeviceDescription_GetSizeOf(); }
}
protected override void DefaultConstructAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkDeviceDescription_Clear(address);
}
protected override AkDeviceDescription CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkDeviceDescription(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkDeviceDescription other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkDeviceDescription_Clone(address, AkDeviceDescription.getCPtr(other));
}
}
#endif
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 12fd93885c4219c43835a911a97ee616
@@ -0,0 +1,40 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkDiffractionPathInfoArray : AkBaseArray<AkDiffractionPathInfo>
{
public AkDiffractionPathInfoArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkDiffractionPathInfo_GetSizeOf(); }
}
protected override AkDiffractionPathInfo CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkDiffractionPathInfo(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkDiffractionPathInfo other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkDiffractionPathInfo_Clone(address, AkDiffractionPathInfo.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8b1b6ad2b17678940949137ac5e6d09d
@@ -0,0 +1,50 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkExternalSourceInfoArray : AkBaseArray<AkExternalSourceInfo>
{
public AkExternalSourceInfoArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkExternalSourceInfo_GetSizeOf(); }
}
protected override void DefaultConstructAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkExternalSourceInfo_Clear(address);
}
protected override void ReleaseAllocatedMemoryFromReferenceAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkExternalSourceInfo_szFile_set(address, null);
}
protected override AkExternalSourceInfo CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkExternalSourceInfo(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkExternalSourceInfo other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkExternalSourceInfo_Clone(address, AkExternalSourceInfo.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 90e793f3f25e5ec4aa4a88fa08a5e1a3
@@ -0,0 +1,88 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkMIDIPostArray
{
private readonly int m_Count;
private readonly int SIZE_OF = AkUnitySoundEnginePINVOKE.CSharp_AkMIDIPost_GetSizeOf();
private System.IntPtr m_Buffer = System.IntPtr.Zero;
public AkMIDIPostArray(int size)
{
m_Count = size;
m_Buffer = System.Runtime.InteropServices.Marshal.AllocHGlobal(m_Count * SIZE_OF);
}
public AkMIDIPost this[int index]
{
get
{
if (index >= m_Count)
throw new System.IndexOutOfRangeException("Out of range access in AkMIDIPostArray");
return new AkMIDIPost(GetObjectPtr(index), false);
}
set
{
if (index >= m_Count)
throw new System.IndexOutOfRangeException("Out of range access in AkMIDIPostArray");
AkUnitySoundEnginePINVOKE.CSharp_AkMIDIPost_Clone(GetObjectPtr(index), AkMIDIPost.getCPtr(value));
}
}
~AkMIDIPostArray()
{
System.Runtime.InteropServices.Marshal.FreeHGlobal(m_Buffer);
m_Buffer = System.IntPtr.Zero;
}
public void PostOnEvent(uint in_eventID, UnityEngine.GameObject gameObject)
{
var gameObjectID = AkUnitySoundEngine.GetAkGameObjectID(gameObject);
AkUnitySoundEngine.PreGameObjectAPICall(gameObject, gameObjectID);
AkUnitySoundEnginePINVOKE.CSharp_PostMIDIOnEvent__SWIG_3(in_eventID, gameObjectID, m_Buffer, (ushort) m_Count);
}
public void PostOnEvent(uint in_eventID, UnityEngine.GameObject gameObject, int count)
{
if (count >= m_Count)
throw new System.IndexOutOfRangeException("Out of range access in AkMIDIPostArray");
var gameObjectID = AkUnitySoundEngine.GetAkGameObjectID(gameObject);
AkUnitySoundEngine.PreGameObjectAPICall(gameObject, gameObjectID);
AkUnitySoundEnginePINVOKE.CSharp_PostMIDIOnEvent__SWIG_3(in_eventID, gameObjectID, m_Buffer, (ushort) count);
}
public System.IntPtr GetBuffer()
{
return m_Buffer;
}
public int Count()
{
return m_Count;
}
private System.IntPtr GetObjectPtr(int index)
{
return (System.IntPtr) (m_Buffer.ToInt64() + SIZE_OF * index);
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 03991e0847903f84389f0a3ac4b141b1
@@ -0,0 +1,45 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkObjectInfoArray : AkBaseArray<AkObjectInfo>
{
public AkObjectInfoArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkObjectInfo_GetSizeOf(); }
}
protected override void DefaultConstructAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkObjectInfo_Clear(address);
}
protected override AkObjectInfo CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkObjectInfo(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkObjectInfo other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkObjectInfo_Clone(address, AkObjectInfo.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3801e24873004414fb73fed9894a37ff
@@ -0,0 +1,45 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkObstructionOcclusionValuesArray : AkBaseArray<AkObstructionOcclusionValues>
{
public AkObstructionOcclusionValuesArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkObstructionOcclusionValues_GetSizeOf(); }
}
protected override void DefaultConstructAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkObstructionOcclusionValues_Clear(address);
}
protected override AkObstructionOcclusionValues CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkObstructionOcclusionValues(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkObstructionOcclusionValues other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkObstructionOcclusionValues_Clone(address, AkObstructionOcclusionValues.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 72a2119a96a89a148922b20c464225b4
@@ -0,0 +1,94 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkPositionArray : System.IDisposable
{
public System.IntPtr m_Buffer;
private System.IntPtr m_Current;
private uint m_MaxCount;
public AkPositionArray(uint in_Count)
{
m_Buffer = System.Runtime.InteropServices.Marshal.AllocHGlobal((int) in_Count * (sizeof(float) * 6 + sizeof(double) * 3));
m_Current = m_Buffer;
m_MaxCount = in_Count;
Count = 0;
}
public uint Count { get; private set; }
public void Dispose()
{
if (m_Buffer != System.IntPtr.Zero)
{
System.Runtime.InteropServices.Marshal.FreeHGlobal(m_Buffer);
m_Buffer = System.IntPtr.Zero;
m_MaxCount = 0;
}
}
~AkPositionArray()
{
Dispose();
}
public void Reset()
{
m_Current = m_Buffer;
Count = 0;
}
public void Add(AkVector64 in_Pos, UnityEngine.Vector3 in_Forward, UnityEngine.Vector3 in_Top)
{
if (Count >= m_MaxCount)
throw new System.IndexOutOfRangeException("Out of range access in AkPositionArray");
//Marshal doesn't do floats. So copy the bytes themselves. Grrr.
System.Runtime.InteropServices.Marshal.WriteInt32(m_Current,
System.BitConverter.ToInt32(System.BitConverter.GetBytes(in_Forward.x), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(float));
System.Runtime.InteropServices.Marshal.WriteInt32(m_Current,
System.BitConverter.ToInt32(System.BitConverter.GetBytes(in_Forward.y), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(float));
System.Runtime.InteropServices.Marshal.WriteInt32(m_Current,
System.BitConverter.ToInt32(System.BitConverter.GetBytes(in_Forward.z), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(float));
System.Runtime.InteropServices.Marshal.WriteInt32(m_Current,
System.BitConverter.ToInt32(System.BitConverter.GetBytes(in_Top.x), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(float));
System.Runtime.InteropServices.Marshal.WriteInt32(m_Current,
System.BitConverter.ToInt32(System.BitConverter.GetBytes(in_Top.y), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(float));
System.Runtime.InteropServices.Marshal.WriteInt32(m_Current,
System.BitConverter.ToInt32(System.BitConverter.GetBytes(in_Top.z), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(float));
System.Runtime.InteropServices.Marshal.WriteInt64(m_Current,
System.BitConverter.ToInt64(System.BitConverter.GetBytes(in_Pos.X), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(double));
System.Runtime.InteropServices.Marshal.WriteInt64(m_Current,
System.BitConverter.ToInt64(System.BitConverter.GetBytes(in_Pos.Y), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(double));
System.Runtime.InteropServices.Marshal.WriteInt64(m_Current,
System.BitConverter.ToInt64(System.BitConverter.GetBytes(in_Pos.Z), 0));
m_Current = (System.IntPtr) (m_Current.ToInt64() + sizeof(double));
Count++;
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d2dac2bb7af1f3c4e99c5ca1a9d13c79
@@ -0,0 +1,40 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkReflectionPathInfoArray : AkBaseArray<AkReflectionPathInfo>
{
public AkReflectionPathInfoArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkReflectionPathInfo_GetSizeOf(); }
}
protected override AkReflectionPathInfo CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkReflectionPathInfo(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkReflectionPathInfo other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkReflectionPathInfo_Clone(address, AkReflectionPathInfo.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2374fa8a43260374da73abedbead7f98
@@ -0,0 +1,45 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkSourceSettingsArray : AkBaseArray<AkSourceSettings>
{
public AkSourceSettingsArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkSourceSettings_GetSizeOf(); }
}
protected override void DefaultConstructAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkSourceSettings_Clear(address);
}
protected override AkSourceSettings CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkSourceSettings(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkSourceSettings other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkSourceSettings_Clone(address, AkSourceSettings.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 21b3d946f71e1874f8dea6257b64f9ea
@@ -0,0 +1,45 @@
#if !(UNITY_QNX) // Disable under unsupported platforms.
/*******************************************************************************
The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
Technology released in source code form as part of the game integration package.
The content of this file may not be used without valid licenses to the
AUDIOKINETIC Wwise Technology.
Note that the use of the game engine is subject to the Unity(R) Terms of
Service at https://unity3d.com/legal/terms-of-service
License Usage
Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
this file in accordance with the end user license agreement provided with the
software or, alternatively, in accordance with the terms contained
in a written agreement between you and Audiokinetic Inc.
Copyright (c) 2026 Audiokinetic Inc.
*******************************************************************************/
public class AkTriangleArray : AkBaseArray<AkTriangle>
{
public AkTriangleArray(int count) : base(count)
{
}
protected override int StructureSize
{
get { return AkUnitySoundEnginePINVOKE.CSharp_AkTriangle_GetSizeOf(); }
}
protected override void DefaultConstructAtIntPtr(System.IntPtr address)
{
AkUnitySoundEnginePINVOKE.CSharp_AkTriangle_Clear(address);
}
protected override AkTriangle CreateNewReferenceFromIntPtr(System.IntPtr address)
{
return new AkTriangle(address, false);
}
protected override void CloneIntoReferenceFromIntPtr(System.IntPtr address, AkTriangle other)
{
AkUnitySoundEnginePINVOKE.CSharp_AkTriangle_Clone(address, AkTriangle.getCPtr(other));
}
}
#endif // #if !(UNITY_QNX) // Disable under unsupported platforms.
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 959e9847839cf2c44917926e95e6b0cc