Exemplo n.º 1
0
    protected override void OnDisable()
    {
#if !DISABLE_AKSOUNDENGINE
        base.OnDisable();

        if (multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
        {
            AkMultiPosEvent eventPosList = multiPosEventTree[eventID];

            if (eventPosList.list.Count == 1)
            {
                multiPosEventTree.Remove(eventID);
                return;
            }
            else
            {
                eventPosList.list.Remove(this);

                AkPositionArray positionArray = BuildMultiDirectionArray(eventPosList);

                //Set multiple positions
                AkSoundEngine.SetMultiplePositions(eventPosList.list[0].gameObject, positionArray, (ushort)positionArray.Count, MultiPositionType.MultiPositionType_MultiSources);
            }
        }
#endif
    }
Exemplo n.º 2
0
    protected override void OnEnable()
    {
#if !DISABLE_AKSOUNDENGINE
        base.OnEnable();

        if (multiPositionTypeLabel == MultiPositionTypeLabel.Simple_Mode)
        {
            AkGameObj[] gameObj = gameObject.GetComponents <AkGameObj>();
            for (int i = 0; i < gameObj.Length; i++)
            {
                gameObj[i].enabled = true;
            }
        }
        else if (multiPositionTypeLabel == MultiPositionTypeLabel.Large_Mode)
        {
            AkGameObj[] gameObj = gameObject.GetComponents <AkGameObj>();
            for (int i = 0; i < gameObj.Length; i++)
            {
                gameObj[i].enabled = false;
            }

            AkPositionArray positionArray = BuildAkPositionArray();

            AkSoundEngine.SetMultiplePositions(gameObject, positionArray, (ushort)positionArray.Count, MultiPositionType.MultiPositionType_MultiSources);
        }
        else if (multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
        {
            AkGameObj[] gameObj = gameObject.GetComponents <AkGameObj>();
            for (int i = 0; i < gameObj.Length; i++)
            {
                gameObj[i].enabled = false;
            }

            AkMultiPosEvent eventPosList;

            if (multiPosEventTree.TryGetValue(eventID, out eventPosList))
            {
                if (!eventPosList.list.Contains(this))
                {
                    eventPosList.list.Add(this);
                }
            }
            else
            {
                eventPosList = new AkMultiPosEvent();
                eventPosList.list.Add(this);
                multiPosEventTree.Add(eventID, eventPosList);
            }


            AkPositionArray positionArray = BuildMultiDirectionArray(eventPosList);

            //Set multiple positions
            AkSoundEngine.SetMultiplePositions(eventPosList.list[0].gameObject, positionArray, (ushort)positionArray.Count, MultiPositionType.MultiPositionType_MultiSources);
        }
#endif
    }
Exemplo n.º 3
0
    private AkPositionArray BuildAkPositionArray()
    {
        AkPositionArray akPositionArray = new AkPositionArray((uint)this.multiPositionArray.Count);

        for (int i = 0; i < this.multiPositionArray.Count; i++)
        {
            akPositionArray.Add(base.transform.position + this.multiPositionArray[i], base.transform.forward);
        }
        return(akPositionArray);
    }
Exemplo n.º 4
0
    public AkPositionArray BuildMultiDirectionArray(ref AkMultiPosEvent eventPosList)
    {
        AkPositionArray akPositionArray = new AkPositionArray((uint)eventPosList.list.Count);

        for (int i = 0; i < eventPosList.list.Count; i++)
        {
            akPositionArray.Add(eventPosList.list[i].transform.position, eventPosList.list[i].transform.forward);
        }
        return(akPositionArray);
    }
Exemplo n.º 5
0
    public AkPositionArray BuildMultiplePositions(List <SoundPoint> multiPositionList)
    {
        AkPositionArray positionArray = new AkPositionArray((uint)multiPositionList.Count);

        for (int i = 0; i < multiPositionList.Count; i++)
        {
            positionArray.Add(multiPositionList[i].gameObject.transform.position, multiPositionList[i].gameObject.transform.forward, multiPositionList[i].gameObject.transform.up);
        }
        return(positionArray);
    }
Exemplo n.º 6
0
    public AkPositionArray BuildMultiDirectionArray( ref AkMultiPosEvent eventPosList)
    {
        AkPositionArray positionArray = new AkPositionArray((uint)eventPosList.list.Count);

        for (int i = 0; i < eventPosList.list.Count; i++)
        {
            positionArray.Add (eventPosList.list [i].transform.position, eventPosList.list [i].transform.forward);
        }

        return positionArray;
    }
Exemplo n.º 7
0
    AkPositionArray BuildAkPositionArray()
    {
        AkPositionArray positionArray = new AkPositionArray((uint)multiPositionArray.Count);

        for (int i = 0; i < multiPositionArray.Count; i++)
        {
            positionArray.Add(transform.position + multiPositionArray[i], transform.forward, transform.up);
        }

        return(positionArray);
    }
    public AkPositionArray BuildMultiDirectionArray(AkMultiPosEvent eventPosList)
    {
        var positionArray = new AkPositionArray((uint)eventPosList.list.Count);

        for (var i = 0; i < eventPosList.list.Count; i++)
        {
            positionArray.Add(eventPosList.list[i].transform.position, eventPosList.list[i].transform.forward,
                              eventPosList.list[i].transform.up);
        }

        return(positionArray);
    }
Exemplo n.º 9
0
 private void OnDisable()
 {
     if (this.multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
     {
         AkMultiPosEvent akMultiPosEvent = AkAmbient.multiPosEventTree[this.eventID];
         if (akMultiPosEvent.list.Count == 1)
         {
             AkAmbient.multiPosEventTree.Remove(this.eventID);
             return;
         }
         akMultiPosEvent.list.Remove(this);
         AkPositionArray akPositionArray = this.BuildMultiDirectionArray(ref akMultiPosEvent);
         AkSoundEngine.SetMultiplePositions(akMultiPosEvent.list[0].gameObject, akPositionArray, (ushort)akPositionArray.Count, MultiPositionType.MultiPositionType_MultiSources);
     }
 }
Exemplo n.º 10
0
    //Update multiposition for parent destroyed
    void UpdateMultiPosition(SoundPoint soundpoint)
    {
        SPMultiPosEvent eventPosList = multiPosEventTree[soundpoint.startEvent.Name];

        SoundPoint parentSoundPoint = eventPosList.parentSoundPoint;

        if (eventPosList.list.Count == 0)
        {
            DestroySoundPoint(parentSoundPoint);
            return;
        }

        AkPositionArray positionArray = BuildMultiplePositions(eventPosList.list);

        AkSoundEngine.SetMultiplePositions(parentSoundPoint.gameObject, positionArray, (ushort)positionArray.Count, AkMultiPositionType.MultiPositionType_MultiSources);
    }
Exemplo n.º 11
0
 private void OnDisable()
 {
     if (this.multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
     {
         AkMultiPosEvent eventPosList = multiPosEventTree[base.eventID];
         if (eventPosList.list.Count == 1)
         {
             multiPosEventTree.Remove(base.eventID);
         }
         else
         {
             eventPosList.list.Remove(this);
             AkPositionArray array = this.BuildMultiDirectionArray(ref eventPosList);
             AkSoundEngine.SetMultiplePositions(eventPosList.list[0].gameObject, array, (ushort)array.Count, MultiPositionType.MultiPositionType_MultiSources);
         }
     }
 }
Exemplo n.º 12
0
 private void OnEnable()
 {
     if (this.multiPositionTypeLabel == MultiPositionTypeLabel.Simple_Mode)
     {
         AkGameObj[] components = base.gameObject.GetComponents <AkGameObj>();
         for (int i = 0; i < components.Length; i++)
         {
             components[i].enabled = true;
         }
     }
     else if (this.multiPositionTypeLabel == MultiPositionTypeLabel.Large_Mode)
     {
         AkGameObj[] components2 = base.gameObject.GetComponents <AkGameObj>();
         for (int j = 0; j < components2.Length; j++)
         {
             components2[j].enabled = false;
         }
         AkPositionArray akPositionArray = this.BuildAkPositionArray();
         AkSoundEngine.SetMultiplePositions(base.gameObject, akPositionArray, (ushort)akPositionArray.Count, MultiPositionType.MultiPositionType_MultiSources);
     }
     else if (this.multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
     {
         AkGameObj[] components3 = base.gameObject.GetComponents <AkGameObj>();
         for (int k = 0; k < components3.Length; k++)
         {
             components3[k].enabled = false;
         }
         AkMultiPosEvent akMultiPosEvent;
         if (AkAmbient.multiPosEventTree.TryGetValue(this.eventID, out akMultiPosEvent))
         {
             if (!akMultiPosEvent.list.Contains(this))
             {
                 akMultiPosEvent.list.Add(this);
             }
         }
         else
         {
             akMultiPosEvent = new AkMultiPosEvent();
             akMultiPosEvent.list.Add(this);
             AkAmbient.multiPosEventTree.Add(this.eventID, akMultiPosEvent);
         }
         AkPositionArray akPositionArray2 = this.BuildMultiDirectionArray(ref akMultiPosEvent);
         AkSoundEngine.SetMultiplePositions(akMultiPosEvent.list[0].gameObject, akPositionArray2, (ushort)akPositionArray2.Count, MultiPositionType.MultiPositionType_MultiSources);
     }
 }
Exemplo n.º 13
0
 private void OnEnable()
 {
     if (this.multiPositionTypeLabel == MultiPositionTypeLabel.Simple_Mode)
     {
         AkGameObj[] components = base.gameObject.GetComponents <AkGameObj>();
         for (int i = 0; i < components.Length; i++)
         {
             components[i].enabled = true;
         }
     }
     else if (this.multiPositionTypeLabel == MultiPositionTypeLabel.Large_Mode)
     {
         AkGameObj[] objArray2 = base.gameObject.GetComponents <AkGameObj>();
         for (int j = 0; j < objArray2.Length; j++)
         {
             objArray2[j].enabled = false;
         }
         AkPositionArray array = this.BuildAkPositionArray();
         AkSoundEngine.SetMultiplePositions(base.gameObject, array, (ushort)array.Count, MultiPositionType.MultiPositionType_MultiSources);
     }
     else if (this.multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
     {
         AkMultiPosEvent event2;
         AkGameObj[]     objArray3 = base.gameObject.GetComponents <AkGameObj>();
         for (int k = 0; k < objArray3.Length; k++)
         {
             objArray3[k].enabled = false;
         }
         if (multiPosEventTree.TryGetValue(base.eventID, out event2))
         {
             if (!event2.list.Contains(this))
             {
                 event2.list.Add(this);
             }
         }
         else
         {
             event2 = new AkMultiPosEvent();
             event2.list.Add(this);
             multiPosEventTree.Add(base.eventID, event2);
         }
         AkPositionArray array2 = this.BuildMultiDirectionArray(ref event2);
         AkSoundEngine.SetMultiplePositions(event2.list[0].gameObject, array2, (ushort)array2.Count, MultiPositionType.MultiPositionType_MultiSources);
     }
 }
Exemplo n.º 14
0
    void OnDisable()
    {
        if (multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
        {
            AkMultiPosEvent eventPosList = multiPosEventTree[eventID];

            if (eventPosList.list.Count == 1)
            {
                multiPosEventTree.Remove(eventID);
                return;
            }
            else
            {
                eventPosList.list.Remove(this);

                AkPositionArray positionArray = BuildMultiDirectionArray(eventPosList);
                AkSoundEngine.SetMultiplePositions(eventPosList.list[0].gameObject, positionArray, (ushort)positionArray.Count, MultiPositionType);
            }
        }
    }
Exemplo n.º 15
0
    void SetMultiPosition(SoundPoint soundpoint)
    {
        SPMultiPosEvent multiPosEvent    = multiPosEventTree[soundpoint.startEvent.Name];
        SoundPoint      soundPointParent = multiPosEvent.parentSoundPoint;

        AkGameObj[] gameObj = soundpoint.gameObject.GetComponents <AkGameObj>();
        for (int i = 0; i < gameObj.Length; i++)
        {
            gameObj[i].enabled = false;
        }

        AkPositionArray positionArray = BuildMultiplePositions(multiPosEvent.list);

        AkSoundEngine.SetMultiplePositions(soundPointParent.gameObject, positionArray, (ushort)positionArray.Count, AkMultiPositionType.MultiPositionType_MultiSources);
        if (!multiPosEvent.eventIsPlaying)
        {
            soundpoint.startEvent.Post(soundPointParent.gameObject, (uint)AkCallbackType.AK_EndOfEvent, AKCallBackFinishedPlaying);
            //AkSoundEngine.PostEvent(soundpoint.eventName, soundPointParent.gameObject, (uint)AkCallbackType.AK_EndOfEvent, AKCallBackFinishedPlaying, null, 0, null, AkSoundEngine.AK_INVALID_PLAYING_ID);
            //AkSoundEngine.PostEvent()
            multiPosEvent.eventIsPlaying = true;
        }
    }
    private AkPositionArray BuildAkPositionArray()
    {
        var validPositionList = new System.Collections.Generic.List <AkAmbientLargeModePositioner>();

        for (int i = 0; i < LargeModePositions.Length; ++i)
        {
            if (LargeModePositions[i] != null)
            {
                if (!validPositionList.Contains(LargeModePositions[i]))
                {
                    validPositionList.Add(LargeModePositions[i]);
                }
            }
        }

        var positionArray = new AkPositionArray((uint)validPositionList.Count);

        for (int i = 0; i < validPositionList.Count; ++i)
        {
            positionArray.Add(validPositionList[i].Position, validPositionList[i].Forward, validPositionList[i].Up);
        }

        return(positionArray);
    }
Exemplo n.º 17
0
  public static AKRESULT SetMultiplePositions(UnityEngine.GameObject in_GameObjectID, AkPositionArray in_pPositions, ushort in_NumPositions) {
    
		uint tempin_GameObjectID;
		if ( in_GameObjectID != null )
		{
			tempin_GameObjectID = (uint)in_GameObjectID.GetInstanceID();
			// Note: if AkGameObjectTracker is already attached, the following code will be bypassed.
			if (in_GameObjectID.GetComponent<AkGameObject>() == null)
			{
				in_GameObjectID.AddComponent<AkGameObject>();
			}
		}
		else
		{
			tempin_GameObjectID = unchecked((uint)-1);
		}
		
		
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_SetMultiplePositions__SWIG_1(tempin_GameObjectID, in_pPositions.m_Buffer, in_NumPositions);

      return ret;
    }
  }
Exemplo n.º 18
0
  public static AKRESULT SetMultiplePositions(UnityEngine.GameObject in_GameObjectID, AkPositionArray in_pPositions, ushort in_NumPositions) {
    
		uint tempin_GameObjectID;
		if ( in_GameObjectID != null )
		{
			tempin_GameObjectID = (uint)in_GameObjectID.GetInstanceID();
			// Note: if AkGameObjectTracker is already attached, the following code will be bypassed.
			if (in_GameObjectID.GetComponent<AkGameObject>() == null)
			{
				in_GameObjectID.AddComponent<AkGameObject>();

				// Note: We have missed AkGameObject.Awake() of this run to register. 
				// So we take over its work by inlining it here.
				AkSoundEngine.RegisterGameObj(in_GameObjectID, in_GameObjectID.name);
			
				//Set the original position
				AkSoundEngine.SetObjectPosition(
		            in_GameObjectID, 
		            in_GameObjectID.transform.position.x, 
		            in_GameObjectID.transform.position.y, 
		            in_GameObjectID.transform.position.z, 
		            in_GameObjectID.transform.forward.x,
		            in_GameObjectID.transform.forward.y, 
		            in_GameObjectID.transform.forward.z
		        	);
			}
		}
		else
		{
			tempin_GameObjectID = unchecked((uint)-1);
		}
		
		
    {
      AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_SetMultiplePositions__SWIG_1(tempin_GameObjectID, in_pPositions.m_Buffer, in_NumPositions);

      return ret;
    }
  }
Exemplo n.º 19
0
    public static AKRESULT SetMultiplePositions(ComponentBind.Entity in_GameObjectID, AkPositionArray in_pPositions, ushort in_NumPositions, MultiPositionType in_eMultiPositionType)
    {
        uint tempin_GameObjectID;
                if ( in_GameObjectID != null )
                {
                        tempin_GameObjectID = getGameObjectID(in_GameObjectID);
                        // Note: if AkGameObjectTracker is already attached, the following code will be bypassed.
                        if (in_GameObjectID.Get<AkGameObject>() == null)
                        {
                                in_GameObjectID.Add(new AkGameObject());
                        }
                }
                else
                {
                        tempin_GameObjectID = unchecked((uint)-1);
                }

        {
            AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_SetMultiplePositions__SWIG_0(tempin_GameObjectID, in_pPositions.m_Buffer, in_NumPositions, (int)in_eMultiPositionType);

            return ret;
        }
    }
Exemplo n.º 20
0
    public static AKRESULT SetMultiplePositions(UnityEngine.GameObject in_GameObjectID, AkPositionArray in_pPositions, ushort in_NumPositions)
    {
        AkAutoObject tempObj = null;
        uint tempin_GameObjectID;
        if ( in_GameObjectID != null )
        {
            tempin_GameObjectID = (uint)in_GameObjectID.GetInstanceID();
            if (in_GameObjectID.activeInHierarchy)
            {
                if (in_GameObjectID.GetComponent<AkGameObj>() == null)
                {
                    in_GameObjectID.AddComponent<AkGameObj>();
                }
            }
            else
            {
                //Object not active. AkGameObj will not work.  Use a temporary game object.
                //This will automatically unregister at the end of this scope.
                tempObj = new AkAutoObject(in_GameObjectID);
                tempin_GameObjectID = (uint)tempObj.m_id;	//Silence warning
            }
        }
        else
        {
            tempin_GameObjectID = unchecked((uint)-1);
        }

        {
          AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_SetMultiplePositions__SWIG_1(tempin_GameObjectID, in_pPositions.m_Buffer, in_NumPositions);

          return ret;
        }
    }
Exemplo n.º 21
0
    public static AKRESULT SetMultiplePositions(UnityEngine.GameObject in_GameObjectID, AkPositionArray in_pPositions, ushort in_NumPositions)
    {
        AkAutoObject tempObj = null;
        uint tempin_GameObjectID = (uint)AutoRegisterAkGameObj(in_GameObjectID, ref tempObj);

        {
          AKRESULT ret = (AKRESULT)AkSoundEnginePINVOKE.CSharp_SetMultiplePositions__SWIG_1(tempin_GameObjectID, in_pPositions.m_Buffer, in_NumPositions);

          return ret;
        }
    }
Exemplo n.º 22
0
    AkPositionArray BuildAkPositionArray()
    {
        AkPositionArray positionArray = new AkPositionArray((uint)multiPositionArray.Count);

        for (int i = 0; i < multiPositionArray.Count; i++)
        {
            positionArray.Add( transform.position + multiPositionArray[i], transform.forward);
        }

        return positionArray;
    }