public IEnumerator CheckElementToActivate() { if (narrativeElementsInRange.Count > 0) { float i_minimalDistance = 100; int i_narrativeElementToActivate = -1; for (int i = 0; i < narrativeElementsInRange.Count; i++) { float i_distanceFromElement = Vector3.Distance(narrativeElementsInRange[i].transform.position, middlePlayerPosition); if (i_distanceFromElement < i_minimalDistance) { i_minimalDistance = i_distanceFromElement; i_narrativeElementToActivate = i; } } if (narrativeElementsInRange[i_narrativeElementToActivate] != activatedNarrativeElement) { if (activatedNarrativeElement != null) { activatedNarrativeElement.SetAIPossession(false); } activatedNarrativeElement = narrativeElementsInRange[i_narrativeElementToActivate]; activatedNarrativeElement.SetAIPossession(true); } } else if (activatedNarrativeElement != null) { activatedNarrativeElement.SetAIPossession(false); activatedNarrativeElement = null; } yield return(new WaitForSeconds(timeBetweenRangeCheck)); StartCoroutine(CheckElementToActivate()); }
public void SetNarrativeElementsInRange(bool _add, NarrativeInteractiveElements _narrativeElement) { if (_add) { narrativeElementsInRange.Add(_narrativeElement); } else { narrativeElementsInRange.Remove(_narrativeElement); } }
public void ChangeActivatedNarrationElement(NarrativeInteractiveElements _newNarrativeElement) { currentNarrationElementActivated = _newNarrativeElement; if (currentNarrationElementActivated != null) { myAudioSource.outputAudioMixerGroup = currentNarrationElementActivated.myAudioMixer; } else { myAudioSource.outputAudioMixerGroup = defaultAudioMixer; } }