private void SetRoomPortal()
    {
        if (!enabled)
        {
            return;
        }

        if (IsValid)
        {
            portalTransform.Set(portalCollider.bounds.center, transform.forward, transform.up);
            var extentVector = UnityEngine.Vector3.Scale(portalCollider.size, transform.lossyScale) / 2;
            // in case extent is negative, get the absolute value
            AkExtent extent = new AkExtent(
                UnityEngine.Mathf.Abs(extentVector.x),
                UnityEngine.Mathf.Abs(extentVector.y),
                UnityEngine.Mathf.Abs(extentVector.z));
            AkSoundEngine.SetRoomPortal(GetID(), portalTransform, extent, active, frontRoomID, backRoomID);
            portalSet = true;
        }
        else
        {
            UnityEngine.Debug.LogError(name + " has identical front and back rooms. It will not be sent to Spatial Audio.");
            if (portalSet)
            {
                AkSoundEngine.RemovePortal(GetID());
            }
            portalSet = false;
        }
    }
Beispiel #2
0
 internal static global::System.IntPtr getCPtr(AkExtent obj)
 {
     return((obj == null) ? global::System.IntPtr.Zero : obj.swigCPtr);
 }