public Vector3 PoolLocate(Vector3 target) { if (time != Time.time) { pool.Clear(); time = Time.time; } float disWinner, disCurrent; disWinner = float.PositiveInfinity; Vector3 winner, current; winner = Vector3.zero; AudioRoom winnerAudioRoom = null; foreach (AudioRoom a in targets) { if (IsAudioRoomNotPooling(a)) { current = a.Locate(target); disCurrent = FastDistance(target, current); if (disCurrent < disWinner) { disWinner = disCurrent; winner = current; winnerAudioRoom = a; } } } pool.Add(winnerAudioRoom); return(winner); }
public void OnSceneGUI() { if (edit) { a = (target as AudioRoom); Handles.color = Color.blue; a.pos = b.center - a.transform.position; a.size = b.size / 2; b.DrawHandle(); } }
public bool IsAudioRoomNotPooling(AudioRoom a) { foreach (AudioRoom s in pool) { if (s == a) { return(false); } } return(true); }
IEnumerator FadeInAudioRoutine(AudioRoom ar) { player.SetCurrentAudioRoom(lastCheckpoint.aRoom); float i = 0; while (i < 50) { i += Time.deltaTime * audioFadeSpeed; AkSoundEngine.SetRTPCValue("position_relative_volume_" + ar.id, i); yield return(new WaitForEndOfFrame()); } i = 50; AkSoundEngine.SetRTPCValue("position_relative_volume_" + ar.id, i); yield return(null); }
private void PlayCurrentAudioRoom(AudioRoom ar) { ar.PlayEvent(); AkSoundEngine.SetRTPCValue("position_gd_" + ar.id, 50); StartCoroutine(FadeInAudioRoutine(ar)); }
public void SetCurrentAudioRoom(AudioRoom ar) { currentAudioRoom = ar; }
private void Awake() { a = (target as AudioRoom); b.center = a.pos + a.transform.position; b.size = a.size * 2; }
private void Start() { pack = AudioRoom.GetAudioRoomPack(groupName); }