Пример #1
0
        public void OnPlayingAudio(AudioSource audSrc, Transform owner, AudioEventMonoB.AudioType audType)
        {
            if (owner != null && (owner == ai.Transform || ai.Memory.isFriend(owner))) // write better
            {
                return;
            }

            float hearingPerc = GetHearingPercentage(audSrc.transform) / 100;

            // if info with owner is added by visual sensor(after creating a suspected hearing info "without BaseTransform" in OnAudioAdded), we should update the right info and remove old
            var info = ai.Memory.GetSuspicionWithBaseTransform <InformationSuspicion>(owner);

            if (info != null)
            {
                info.SuspicionFirm += hearingPerc;
                info.Update(owner.position, info.lastKnownPosition.Confidence /*or 0*/); // also update last known position
            }
            else // No visual sense yet
            {
                ListeningSourceVar sourceVar = currentlyListeningSources.Find(x => x.transformId == owner ? owner : audSrc.transform);
                if (sourceVar != null)
                {
                    sourceVar.info.Update(sourceVar.transformId.position, hearingPerc /*sourceVar.info.lastKnownPosition.Confidence*//*or 0*/); // also update last known position
                }
                else
                {
#if UNITY_EDITOR
                    //Debug.LogError("Wrong organization of hearing sensor variables");
#endif
                }
            }
        }
 public void AudioDestroyed(AudioEventMonoB mb, AudioSource audioSource, Transform owner, AudioEventMonoB.AudioType audType)
 {
     if (onAudioDestroyed != null)
     {
         onAudioDestroyed(mb, audioSource, owner, audType);
     }
 }
 public void AudioAdded(AudioEventMonoB mb, AudioSource audioSource, Transform owner, AudioEventMonoB.AudioType audType)
 {
     if (onAudioStartedInstantiated != null)
     {
         onAudioStartedInstantiated(mb, audioSource, owner, audType);
     }
 }
Пример #4
0
        public void OnAudioAdded(AudioEventMonoB mb, AudioSource audSrc, Transform owner, AudioEventMonoB.AudioType audType)
        {
            if (owner != null && (owner == ai.Transform || ai.Memory.isFriend(owner)))
            {
                return;
            }
            mb.onAudioPlaying += OnPlayingAudio;

            var info = ai.Memory.GetSuspicionWithBaseTransform <InformationSuspicion>(owner);

            if (info != null)
            {
                currentlyListeningSources.Add(new ListeningSourceVar(info, owner ? owner : audSrc.transform, audSrc));
            }
            else
            {
                // Create info
                InformationSuspicion newInfo = new InformationSuspicion("Unknown source Audio", audSrc.transform.position, 0);
                ai.Memory.Add(newInfo);
                // Add to listened infos for quick access
                currentlyListeningSources.Add(new ListeningSourceVar(newInfo, owner ? owner : audSrc.transform, audSrc));
            }
        }
Пример #5
0
        public void OnAudioRemoved(AudioEventMonoB mb, AudioSource audSrc, Transform owner, AudioEventMonoB.AudioType audType)
        {
            if (owner != null && (owner == ai.Transform || ai.Memory.isFriend(owner)))
            {
                return;
            }
            mb.onAudioPlaying -= OnPlayingAudio;

            for (int i = 0; i < currentlyListeningSources.Count; i++)
            {
                if (currentlyListeningSources[i].audioSource == audSrc)
                {
                    currentlyListeningSources.RemoveAt(i);
                }
            }
        }