Beispiel #1
0
        private ToneControllerBehaviour NewToneController()
        {
            ToneControllerBehaviour newController = Instantiate(toneControllerBehaviourPrefab, toneControllersContainers);

            controllers.Add(newController);
            return(newController);
        }
Beispiel #2
0
        public int PlayTone(OctaveTone tone, float seg)
        {
            ToneControllerBehaviour controller = null;

            for (int i = 0; i < controllers.Count; i++)
            {
                if (!controllers[i].IsInUse)
                {
                    controller = controllers[i];
                }
            }
            if (controller == null)
            {
                controller = NewToneController();
            }
            StartCoroutine(PlayToneRoutine(controller, tone, seg));
            return(0);
        }
Beispiel #3
0
        private IEnumerator PlayToneRoutine(ToneControllerBehaviour toneController, OctaveTone tone, float seg)
        {
            toneController.IsInUse = true;
            toneController.PlayTone(tone);
            if (seg > 0)
            {
                yield return(new WaitForSeconds(seg));

                toneController.IsInUse = false;
            }
            else
            {
                do
                {
                    yield return(new WaitForEndOfFrame());
                } while (toneController.GetCurrentTone != null);
                toneController.IsInUse = false;
            }
        }