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); } }
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)); } }
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); } } }