Пример #1
0
    public override void HandleEvent(GameObject in_gameObject)
    {
        if (multiPositionTypeLabel != MultiPositionTypeLabel.MultiPosition_Mode)
        {
            base.HandleEvent(in_gameObject);
        }
        else
        {
            AkMultiPosEvent multiPositionSoundEmitter = multiPosEventTree[eventID];
            if (multiPositionSoundEmitter.eventIsPlaying)
            {
                return;
            }

            multiPositionSoundEmitter.eventIsPlaying = true;

            soundEmitterObject = multiPositionSoundEmitter.list[0].gameObject;

            if (enableActionOnEvent)
            {
                AkSoundEngine.ExecuteActionOnEvent((uint)eventID, actionOnEventType, multiPositionSoundEmitter.list[0].gameObject, (int)transitionDuration * 1000, curveInterpolation);
            }
            else
            {
                playingId = AkSoundEngine.PostEvent((uint)eventID, multiPositionSoundEmitter.list[0].gameObject, (uint)AkCallbackType.AK_EndOfEvent, multiPositionSoundEmitter.FinishedPlaying, null, 0, null, AkSoundEngine.AK_INVALID_PLAYING_ID);
            }
        }
    }
    private void OnEnable()
    {
        if (multiPositionTypeLabel == MultiPositionTypeLabel.MultiPosition_Mode)
        {
            var gameObj = gameObject.GetComponents <AkGameObj>();
            for (var i = 0; i < gameObj.Length; i++)
            {
                gameObj[i].enabled = false;
            }

            AkMultiPosEvent eventPosList;

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

            var positionArray = BuildMultiDirectionArray(eventPosList);

            //Set multiple positions
            AkSoundEngine.SetMultiplePositions(eventPosList.list[0].gameObject, positionArray, (ushort)positionArray.Count,
                                               MultiPositionType);
        }
    }
Пример #3
0
 public override void HandleEvent(GameObject in_gameObject)
 {
     if (this.multiPositionTypeLabel != MultiPositionTypeLabel.MultiPosition_Mode)
     {
         base.HandleEvent(in_gameObject);
     }
     else
     {
         AkMultiPosEvent akMultiPosEvent = AkAmbient.multiPosEventTree[this.eventID];
         if (akMultiPosEvent.eventIsPlaying)
         {
             return;
         }
         akMultiPosEvent.eventIsPlaying = true;
         this.soundEmitterObject        = akMultiPosEvent.list[0].gameObject;
         if (this.enableActionOnEvent)
         {
             AkSoundEngine.ExecuteActionOnEvent((uint)this.eventID, this.actionOnEventType, akMultiPosEvent.list[0].gameObject, (int)this.transitionDuration * 1000, this.curveInterpolation);
         }
         else
         {
             AkSoundEngine.PostEvent((uint)this.eventID, akMultiPosEvent.list[0].gameObject, 1u, new AkCallbackManager.EventCallback(akMultiPosEvent.FinishedPlaying), null, 0u, null, 0u);
         }
     }
 }
Пример #4
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
    }
Пример #5
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
    }
Пример #6
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);
    }
Пример #7
0
    private void OnEnable()
    {
        switch (multiPositionTypeLabel)
        {
        case MultiPositionTypeLabel.Simple_Mode:
            var gameObj = gameObject.GetComponents <AkGameObj>();
            for (var i = 0; i < gameObj.Length; i++)
            {
                gameObj[i].enabled = true;
            }

            break;

        case MultiPositionTypeLabel.Large_Mode:
            var gameObj1 = gameObject.GetComponents <AkGameObj>();
            for (var i = 0; i < gameObj1.Length; i++)
            {
                gameObj1[i].enabled = false;
            }

            var positionArray1 = BuildAkPositionArray();
            AkSoundEngine.SetMultiplePositions(gameObject, positionArray1, (ushort)positionArray1.Count, MultiPositionType);
            break;

        case MultiPositionTypeLabel.MultiPosition_Mode:
            var gameObj2 = gameObject.GetComponents <AkGameObj>();
            for (var i = 0; i < gameObj2.Length; i++)
            {
                gameObj2[i].enabled = false;
            }

            AkMultiPosEvent eventPosList;

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

            var positionArray2 = BuildMultiDirectionArray(eventPosList);

            //Set multiple positions
            AkSoundEngine.SetMultiplePositions(eventPosList.list[0].gameObject, positionArray2, (ushort)positionArray2.Count,
                                               MultiPositionType);
            break;
        }
    }
Пример #8
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;
    }
    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);
    }
Пример #10
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);
     }
 }
Пример #11
0
	void 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(ref eventPosList);
			
			//Set multiple positions
			AkSoundEngine.SetMultiplePositions(eventPosList.list[0].gameObject, positionArray, (ushort)positionArray.Count, MultiPositionType.MultiPositionType_MultiSources);
		}
	}
Пример #12
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);
         }
     }
 }
Пример #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[] 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);
     }
 }
Пример #14
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);
     }
 }
Пример #15
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);
            }
        }
    }
Пример #16
0
 public override void HandleEvent(GameObject in_gameObject)
 {
     if (this.multiPositionTypeLabel != MultiPositionTypeLabel.MultiPosition_Mode)
     {
         base.HandleEvent(in_gameObject);
     }
     else
     {
         AkMultiPosEvent event2 = multiPosEventTree[base.eventID];
         if (!event2.eventIsPlaying)
         {
             event2.eventIsPlaying   = true;
             base.soundEmitterObject = event2.list[0].gameObject;
             if (base.enableActionOnEvent)
             {
                 AkSoundEngine.ExecuteActionOnEvent((uint)base.eventID, base.actionOnEventType, event2.list[0].gameObject, ((int)base.transitionDuration) * 0x3e8, base.curveInterpolation);
             }
             else
             {
                 AkSoundEngine.PostEvent((uint)base.eventID, event2.list[0].gameObject, 1, new AkCallbackManager.EventCallback(event2.FinishedPlaying), null, 0, null, 0);
             }
         }
     }
 }