Ejemplo n.º 1
0
    public AudioPlayer(AudioObject audio)
    {
        if (audio == null || audio.parent == null)
        {
            removable = true;
            return;
        }
        this.finished = false;
        this.removable = false;
        this.paused = false;
        this.audio = audio;

        // create audio source with clip
        audioGO = (GameObject)GameObject.Instantiate(AudioManager.instance.audioSourcePrefab);
        //Debug.Log(audio.parent);
        audioGO.transform.parent = audio.parent.transform;
        audioGO.transform.localPosition = Vector3.zero;

        SoundSystemManager.HandleAudioSource(audioGO);

        audioAS = audioGO.GetComponent<AudioSource>();
        audioAS.Stop();
        audioAS.clip = audio.clip;
        audioAS.volume = audio.volume;
        audioAS.loop = audio.loop;
        if (audio.maxDistance.HasValue)
            audioAS.maxDistance = audio.maxDistance.Value;
        if (audio.minDistance.HasValue)
            audioAS.minDistance = audio.minDistance.Value;

        playAtTime = Time.time + audio.delay;
        audioAS.PlayDelayed(audio.delay);
    }
Ejemplo n.º 2
0
    private void DrawInspector()
    {
        AO = (AudioObject) target;

        BeginInspectorGUI();

        //DrawDefaultInspector();
        //VerticalSpace();

        ShowString( AO.audioID, "Audio ID:" );
        ShowString( AO.category != null ? AO.category.Name : "---" , "Audio Category:" );
        ShowString( FormatVolume( AO.volume ), "Item Volume:" );
        ShowString( FormatVolume( AO.volumeTotal ), "Total Volume:" );
        ShowString( string.Format( "{0:0.00} half-tones", AudioObject.InverseTransformPitch( AO.audio.pitch ) ), "Pitch:" );
        if ( AO.audio && AO.audio.clip )
        {
            ShowString( string.Format( "{0} / {1}", AO.audio.time, AO.clipLength ), "Time:" );
        }
        ShowFloat( AO.startedPlayingAtTime, "Time Started:" );

        if ( GUILayout.Button( "Update" ) )
        {

        }


        EndInspectorGUI();
    }
Ejemplo n.º 3
0
 private void InitSound()
 {
     if (BorisSound == null)
         return;
     var audio = new AudioObject(this.gameObject, BorisSound, 1, 0, true, true);
     SoundPlayer = AudioManager.PlayAudio(audio);
     StartSound();
 }
Ejemplo n.º 4
0
 public void PlaySettingsAudio(AudioClip ac)
 {
     if (activePlayer != null)
     {
         activePlayer.MarkRemovable();
     }
     AudioObject ao = new AudioObject(ScreenAudioManager.GetScreenAudioObject(), ac, mute ? 0f : 1f, 0f, false, false);
     activePlayer = AudioManager.PlayAudio(ao);
     latestClip = ac;
 }
Ejemplo n.º 5
0
 public static void Init(AudioObject obj, AudioSource source, int managed_id = -1)
 {
     obj.InitParams();
     obj.audioSource = source;
     obj.ID          = managed_id;
 }
Ejemplo n.º 6
0
    IEnumerator BeginLightExam(List <int> examList)
    {
        bool isPass = true;      //是否通过考试
        //bool isBreak = false;   //是否中断考试
        int   totalScore = 100;  //考试总成绩
        float totalTime  = 5f;   //考试总时长

        //试题开始的提示信息
        textQuestion.text = examTip.exam_tip;
        textAnswer.text   = "";
        audioObject       = AudioSystemMgr.Instance.PlaySoundByClip(ResourcesMgr.Instance.GetAudioWithURL(examTip.exam_audio));
        Debug.Log(audioObject.playTime);
        yield return(new WaitForSeconds(audioObject.playTime));

        audioObject = null;
        yield return(new WaitForSeconds(0.5f));

        for (int i = 0; i < examList.Count; i++)
        {
            sQuestionData question = GameDataMgr.Instance.carInfo.GetQuestionWithId(examList[i]);

            #region MyRegion
            textQuestion.text = question.question;
            textAnswer.text   = question.answer;
            textAnswer.gameObject.SetActive(IsShowAnswer);
            imgResult.gameObject.SetActive(false);
            audioObject = AudioSystemMgr.Instance.PlaySoundByClip(ResourcesMgr.Instance.GetAudioWithURL(question.audio));
            Debug.Log(audioObject.playTime);
            float playTime = Mathf.Clamp(audioObject.playTime - 0.2f, 0.2f, audioObject.playTime);
            LowToHigCount = 0;//防止抢先操作
            yield return(new WaitForSeconds(playTime));

            audioObject = null;
            Debug.LogWarning("开始答题:" + question.question);
            if (!string.IsNullOrEmpty(examTip.broadcast_end) &&
                i != 0 &&                      //第一道题不提示ding
                i != (examList.Count - 1))     //最后一道题不提示ding
            {
                Debug.LogWarning("Ding ^^^^^^^^^^^^ ");
                AudioObject audioBroadcast = AudioSystemMgr.Instance.PlaySoundByClip(ResourcesMgr.Instance.GetAudioWithURL(examTip.broadcast_end));
                yield return(new WaitForSeconds(audioBroadcast.playTime));
            }

            bool  result = GetQuestionResult(question);
            float delay;
            if (result)     //默认灯光是正确的
            {
                Debug.LogWarning("答案默认正确");
                delay       = totalTime;
                isOperation = false;
                while (delay > 0f)
                {
                    yield return(null);

                    delay -= Time.deltaTime;
                    if (isOperation)  //如果正确时进行其他操作变错误
                    {
                        Debug.LogWarning("等待时间中进行了操作");
                        result = false;
                        break;
                    }
                }
            }
            else            //默认灯光是不正确
            {
                Debug.LogWarning("答案默认错误");
                delay = totalTime;
                do
                {
                    yield return(null);

                    delay -= Time.deltaTime;
                    if (isOperation)
                    {
                        isOperation = false;
                        result      = GetQuestionResult(question);
                    }
                } while (delay > 0 && !result);

                if (result)     //等待剩余时间
                {
                    Debug.LogWarning("答题时间:" + delay);
                    isOperation = false;
                    delay       = Mathf.Clamp(delay, 0f, (i + 1) == examList.Count ? 0.5f : 1f);
                    while (delay > 0f)
                    {
                        yield return(null);

                        delay -= Time.deltaTime;
                        if (isOperation)  //如果正确时进行其他操作变错误
                        {
                            Debug.LogWarning("等待时间中进行了操作");
                            result = false;
                            break;
                        }
                    }
                }
            }

            textAnswer.gameObject.SetActive(true);
            imgResult.gameObject.SetActive(true);
            imgResult.sprite = result ? sprRight : sprError;
            if (result)
            {
                Debug.LogWarning("答题----正确");
                yield return(new WaitForSeconds(2.0f));

                imgResult.gameObject.SetActive(false);
            }
            else
            {
                Debug.LogWarning("答题----错误");
                AudioSystemMgr.Instance.PlaySoundByClip(ResourcesMgr.Instance.LoadAudioClip("error"));
                yield return(new WaitForSeconds(2.0f));

                totalScore -= question.score;
            }

            //未通过考试,进行首次提示
            if (isPass && totalScore < 90)
            {
                Debug.LogWarning("未通过考试---提示");
                isPass = false;
                bool waiting = true;
                bool choice  = false;
                UIPrompDialog.ShowPromp(UIPrompDialog.PrompType.CancelAndConfirm, "", "考试不合格,是否继续考试?",
                                        (confirm) =>
                {
                    choice  = confirm;
                    waiting = false;
                }, "继续考试", "放弃考试");

                while (waiting)
                {
                    yield return(null);
                }

                if (!choice)    //选择放弃考试
                {
                    Debug.LogWarning("放弃考试");
                    IsLightExam = false;
                    IsChioce    = false;
                    yield break;
                }
            }
            #endregion
        }

        textQuestion.text = "";
        if (isPass)                //通过考试
        {
            if (totalScore == 100) //满分通过
            {
                textAnswer.text = "<color=#00ff00>恭喜你满分通过考试!!!</color>";
                imgResult.gameObject.SetActive(true);
                imgResult.sprite = sprRight;
                AudioSystemMgr.Instance.PlaySoundByClip(ResourcesMgr.Instance.LoadAudioClip("right"));
            }
            else
            {
                textAnswer.text = "<color=#00ff00>恭喜你通过考试!!!</color>";
                imgResult.gameObject.SetActive(true);
                imgResult.sprite = sprRight;
                AudioSystemMgr.Instance.PlaySoundByClip(ResourcesMgr.Instance.LoadAudioClip("right"));
            }
        }
        else            //未通过考试
        {
            textAnswer.text = "<color=#ff0000>考试未通过</color>";
            imgResult.gameObject.SetActive(true);
            imgResult.sprite = sprError;
            AudioSystemMgr.Instance.PlaySoundByClip(ResourcesMgr.Instance.LoadAudioClip("error"));
            PauseQuestion();
        }
    }
Ejemplo n.º 7
0
    void DrawGuiLeftSide()
    {
        var headerStyle = new GUIStyle(GUI.skin.label);

        headerStyle.normal.textColor = new UnityEngine.Color(1, 1, 0.5f);
        string txt = string.Format("ClockStone Audio Toolkit - Demo");

        GUI.Label(new Rect(22, 10, 500, 20), txt, headerStyle);



        int ypos           = 10;
        int yposOff        = 35;
        int buttonWidth    = 200;
        int scrollbarWidth = 130;

        ypos += 30;

        if (!AudioController.DoesInstanceExist())
        {
            GUI.Label(new Rect(250, ypos, buttonWidth, 30), "No Audio Controller found!");
            return;
        }

        GUI.Label(new Rect(250, ypos, buttonWidth, 30), "Global Volume");

        AudioController.SetGlobalVolume(GUI.HorizontalSlider(new Rect(250, ypos + 20, scrollbarWidth, 30), AudioController.GetGlobalVolume(), 0, 1));


        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Cross-fade to music track 1"))
        {
            AudioController.PlayMusic("MusicTrack1");
        }

        ypos += yposOff;

        GUI.Label(new Rect(250, ypos + 10, buttonWidth, 30), "Music Volume");

        float musicVolumeNew = GUI.HorizontalSlider(new Rect(250, ypos + 30, scrollbarWidth, 30), musicVolume, 0, 1);

        if (musicVolumeNew != musicVolume)
        {
            musicVolume = musicVolumeNew;
            AudioController.SetCategoryVolume("Music", musicVolume);
        }

        GUI.Label(new Rect(250 + scrollbarWidth + 30, ypos + 10, buttonWidth, 30), "Ambience Volume");

        float ambienceVolumeNew = GUI.HorizontalSlider(new Rect(250 + scrollbarWidth + 30, ypos + 30, scrollbarWidth, 30), ambienceVolume, 0, 1);

        if (ambienceVolumeNew != ambienceVolume)
        {
            ambienceVolume = ambienceVolumeNew;
            AudioController.SetCategoryVolume("Ambience", ambienceVolume);
        }

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Cross-fade to music track 2"))
        {
            AudioController.PlayMusic("MusicTrack2");
        }

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Fade out music category"))
        {
            AudioController.FadeOutCategory("Music", 2);
        }

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Fade in music category"))
        {
            AudioController.FadeInCategory("Music", 2);
        }

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Stop Music"))
        {
            AudioController.StopMusic(0.3f);
        }

        //if ( GUI.Button( new Rect( 250, ypos, buttonWidth, 30 ), "Stop Ambience" ) )
        //{
        //    AudioController.StopAmbienceSound( 0.5f );
        //}

        ypos += yposOff;

        bool musicPausedNew = GUI.Toggle(new Rect(20, ypos, buttonWidth, 30), musicPaused, "Pause All Audio");

        if (musicPausedNew != musicPaused)
        {
            musicPaused = musicPausedNew;

            if (musicPaused)
            {
                AudioController.PauseAll(0.1f);
            }
            else
            {
                AudioController.UnpauseAll(0.1f);
            }
        }


        ypos += 20;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Sound with random pitch"))
        {
            AudioController.Play("RandomPitchSound");
        }
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Sound with alternatives"))
        {
            AudioObject soundObj = AudioController.Play("AlternativeSound");
            if (soundObj != null)
            {
                soundObj.completelyPlayedDelegate = OnAudioCompleteleyPlayed;
            }
        }
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Both"))
        {
            AudioObject soundObj = AudioController.Play("RandomAndAlternativeSound");
            if (soundObj != null)
            {
                soundObj.completelyPlayedDelegate = OnAudioCompleteleyPlayed;
            }
        }
        ypos += yposOff;

        GUI.Label(new Rect(20, ypos, 100, 20), "Playlists: ");

        ypos += 20;

        playlistScrollPos = GUI.BeginScrollView(new Rect(20, ypos, buttonWidth, 100), playlistScrollPos,
                                                new Rect(0, 0, buttonWidth, 33f * AudioController.Instance.musicPlaylists.Length));

        for (int i = 0; i < AudioController.Instance.musicPlaylists.Length; ++i)
        {
            if (GUI.Button(new Rect(20, i * 33f, buttonWidth - 20, 30f), AudioController.Instance.musicPlaylists[i].name))
            {
                AudioController.SetCurrentMusicPlaylist(AudioController.Instance.musicPlaylists[i].name);
            }
        }

        ypos += 105;

        GUI.EndScrollView();

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Music Playlist"))
        {
            AudioController.PlayMusicPlaylist();
        }

        ypos += yposOff;

        if (AudioController.IsPlaylistPlaying() && GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Next Track on Playlist"))
        {
            AudioController.PlayNextMusicOnPlaylist();
        }

        ypos += 32;

        if (AudioController.IsPlaylistPlaying() && GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Previous Track on Playlist"))
        {
            AudioController.PlayPreviousMusicOnPlaylist();
        }

        ypos += yposOff;
        AudioController.Instance.loopPlaylist = GUI.Toggle(new Rect(20, ypos, buttonWidth, 30), AudioController.Instance.loopPlaylist, "Loop Playlist");
        ypos += 20;
        AudioController.Instance.shufflePlaylist = GUI.Toggle(new Rect(20, ypos, buttonWidth, 30), AudioController.Instance.shufflePlaylist, "Shuffle Playlist ");
        ypos += 20;
        AudioController.Instance.soundMuted = GUI.Toggle(new Rect(20, ypos, buttonWidth, 30), AudioController.Instance.soundMuted, "Sound Muted");
    }
Ejemplo n.º 8
0
 public void Resume(AudioObject TargetObject)
 {
     TargetObject.Resume();
 }
Ejemplo n.º 9
0
 public void RemoveSE(AudioObject so)
 {
     playingObjects[so.clipId].Remove(so);
     playingSENum--;
 }
Ejemplo n.º 10
0
    /// <summary>
    /// 오디오 오브젝트를 채널에 생성하고 플레이하면 알아서 꺼내오는식으로 하는것이 좋을듯하다...
    /// </summary>
    public AudioObject CreateAudioObject()
    {
        AudioObject NewAudioObject = GameObject.Instantiate(AudioObjectPrefab);

        return(NewAudioObject);
    }
Ejemplo n.º 11
0
 void OnAudioCompleteleyPlayed(AudioObject audioObj)
 {
     Debug.Log("Finished playing " + audioObj.audioID + " with clip " + audioObj.audio.clip.name);
 }
Ejemplo n.º 12
0
	//private int musicThatPlayNow = -1; //-1 if there isn't any music need to play;
	

	
	void Awake(){
		//Init();
		self=this;
		
		cam=Camera.main.transform;

		GameObject notificationObj=new GameObject();
		notificationObj.name="NotificationSource";
		notificationObj.transform.position=cam.position;
		notificationObj.transform.parent=cam;
		notificationSource=notificationObj.AddComponent<AudioSource>();
		notificationSource.loop=false;
		notificationSource.playOnAwake=false;
		notificationSource.ignoreListenerVolume=true;
		notificationSource.outputAudioMixerGroup = notificationGroup;

		if(playMusic && musicList!=null && musicList.Length>0){
			GameObject musicObj=new GameObject();
			musicObj.name="MusicSource";
			musicObj.transform.position=cam.position;
			musicObj.transform.parent=cam;
			musicSource=musicObj.AddComponent<AudioSource>();
			musicSource.loop=false;
			musicSource.playOnAwake=false;
			
			musicSource.ignoreListenerVolume=true;
			musicSource.outputAudioMixerGroup = musicGroup;
			
			StartCoroutine(MusicRoutine());
		}
		
		audioObject=new AudioObject[30];
		for(int i=0; i<audioObject.Length; i++){
			GameObject obj=new GameObject();
			obj.name="AudioSource";
			
			AudioSource src=obj.AddComponent<AudioSource>();
			src.playOnAwake=false;
			src.loop=false;
			src.minDistance=minFallOffRange;
			src.outputAudioMixerGroup = defaultGroup;

			Transform t=obj.transform;
			t.parent=self.transform;
			
			audioObject[i]=new AudioObject(src, t);
		}
		
		AudioListener.volume=0.8f;
		
		if(audioManager==null) audioManager=this;
	}
Ejemplo n.º 13
0
 private void InitBell()
 {
     if (LucyBell == null)
         return;
     var audio = new AudioObject(this.gameObject, LucyBell, 1, 0, true, true);
     bellPlayer = AudioManager.PlayAudio(audio);
     playing = 0;
     StopBell();
 }
Ejemplo n.º 14
0
    IEnumerator RunSequence(AudioObject obj)
    {
        //.Log(obj.clip);

        //if(audioIndex == 0)\
        if (audioIndex == 0)
        {
            BackButton.GetComponent <Image>().enabled = false;
        }
        else
        {
            BackButton.GetComponent <Image>().enabled = true;
        }

        //if (audioIndex == 38)
        if (audioIndex == 38)
        {
            NextButton.GetComponent <Image>().enabled = false;
        }
        else
        {
            NextButton.GetComponent <Image>().enabled = true;
        }

        AudioObject currentAudio = currentPage.audioObjects[audioIndex];

        Scenetext.GetComponent <Text>().text = currentAudio.name;

        //Scenetext.GetComponent<Text>().text = obj.clip.name;

        /*else
         * {
         * Debug.LogErrorFormat("Unable to read the audio from folder {0}. " +
         * "Please ensure an audio file is in the folder, and it's set to the assetbundle {1}.", obj.name, DataManager.currentStoryName);
         * }
         *
         * if (obj.sentence == null)
         * {
         * Debug.LogErrorFormat("Unable to read the text from folder {0}. " +
         * "Please ensure a text file is in the folder, and it's  set to the assetbundle {1}.", obj.name, DataManager.currentStoryName);
         * yield break;
         * }*/

        //float PreviousWordTime =0;

        /*foreach (WordGroupObject wordGroup in obj.sentence.wordGroups)
         * {
         *
         *
         *
         *  if (wordGroup.text.Contains("///"))
         *  {//Get The Narrator
         *
         *
         *
         *  sentenceContainerCurrent += 1;
         *
         *      if (sentenceContainer[sentenceContainerCurrent].GetComponentInParent<SpeechBubbleDelay>())
         *      {
         *          sentenceContainer[sentenceContainerCurrent].GetComponentInParent<SpeechBubbleDelay>().Acvivate_SpeechBuggle(PreviousWordTime);
         *      }
         *
         *  }
         *      else
         *      {
         *      PreviousWordTime = wordGroup.time;
         *      sentenceContainer[sentenceContainerCurrent].AddText(wordGroup);
         *      }
         * }*/

        if (obj.clip != null)
        {
            audioSource.clip = obj.clip;
            audioSource.Play();
        }

        //highlight the proper wordgroups
        int             i             = 0;
        WordGroupObject prevWordGroup = null;

        while (i < obj.sentence.wordGroups.Count)
        {
            WordGroupObject wordGroup = obj.sentence.wordGroups[i];
            foreach (SentenceRowContainer Child in sentenceContainer)
            {
                if (Child != null)
                {
                    Child.HighlightWordGroup(wordGroup);
                }
            }

            float waitTime = wordGroup.time;

            if (audioIndex == 13 && i == 0)
            {
                WordGroupObject wordGroupnext = obj.sentence.wordGroups[i + 1];
                waitTime = wordGroupnext.time - wordGroup.time;
            }

            //We calculate it like this because the times given are actually absolute times, not times per word

            if (prevWordGroup != null && i > 1)
            {
                if (i == obj.sentence.wordGroups.Count - 1)
                {
                    waitTime = obj.clip.length - wordGroup.time;
                }
                else
                {
                    waitTime -= prevWordGroup.time;
                }
            }

            if (audioIndex == 37 && StoryManager.GetComponent <StoryManager>().pagesPerScene == 1)
            {
                waitTime = 4.0f;
            }
            i++;
            yield return(new WaitForSeconds(waitTime));

            if (audioIndex == 36 && StoryManager.GetComponent <StoryManager>().pagesPerScene == 2)
            {
                Debug.Log(audioIndex + "///" + StoryManager.GetComponent <StoryManager>().pagesPerScene);
                NextButton.SetActive(true);
                BackButton.SetActive(true);
                isAutoChapterSkip = 0;
            }
            prevWordGroup = wordGroup;
        }
        //EffectedRow.HighlightWordGroup(null);


        //Debug.Log("PointReached");
        //sentenceContainer.HighlightWordGroup(null);
        foreach (SentenceRowContainer Child in sentenceContainer)
        {
            if (Child != null)
            {
                Child.HighlightWordGroup(null);
            }
        }

        if (isAutoChapterSkip == 0)
        {
            //audioSource.clip = PageDone;
            //audioSource.Play ();
        }

        if (isAutoChapterSkip == 1 && audioIndex != 38)
        {
            GotoNext();
        }
    }
Ejemplo n.º 15
0
 /// <summary>
 /// Resume the cue from where it was paused.
 /// </summary>
 public void Resume()
 {
     UnityEngine.Assertions.Assert.IsTrue(_currentItem > 0, "[AudioCue] Cannot resume when not even started.");
     AudioObject.Resume();
 }
Ejemplo n.º 16
0
 /// <summary>Sequences the end of a one shot AudioObject.</summary>
 /// <param name="Audio">The AudioObject attempting to initiate the end.</param>
 /// <param name="RemainingTime">How much time remains before the AudioObject ends.</param>
 public void SequenceEnd(AudioObject Audio, float RemainingTime)
 {
     StartCoroutine(DelayedEndAudio(Audio, RemainingTime));
 }
Ejemplo n.º 17
0
 /// <summary>Sequences the end of a one shot AudioObject.</summary>
 /// <param name="Audio">The AudioObject attempting to initiate the end.</param>
 public void SequenceEnd(AudioObject Audio)
 {
     SequencedEndJobs.RemoveAll((Coroutine x) => x == null);
     SequencedEndJobs.Add(StartCoroutine(DelayedEndAudio(Audio)));
 }
Ejemplo n.º 18
0
 public static AudioPlayer PlayAudio(AudioObject clip)
 {
     AudioPlayer ap = new AudioPlayer(clip);
     instance.audioPlayers.Add(ap);
     return ap;
 }
Ejemplo n.º 19
0
        string FormatVolume(float volume)
        {
            float dB = 20 * Mathf.Log10(AudioObject.TransformVolume(volume));

            return(string.Format("{0:0.000} ({1:0.0} dB)", volume, dB));
        }
Ejemplo n.º 20
0
 void OnAudioCompleteleyPlayed( AudioObject audioObj )
 {
     Debug.Log( "Finished playing " + audioObj.audioID + " with clip " + audioObj.audio.clip.name );
 }
Ejemplo n.º 21
0
        private void DrawInspector()
        {
            AO = (AudioObject)target;

            BeginInspectorGUI();

            //DrawDefaultInspector();
            //VerticalSpace();

            ShowString(AO.audioID, "Audio ID:");
            ShowString(AO.category != null ? AO.category.Name : "---", "Audio Category:");
            ShowString(FormatVolume(AO.volume), "Item Volume:");
            ShowString(FormatVolume(AO.volumeTotal), "Total Volume:");
            ShowFloat((float)AO.startedPlayingAtTime, "Time Started:");
            if (AO.primaryAudioSource)
            {
                ShowString(string.Format("{0:0.00} half-tones", AudioObject.InverseTransformPitch(AO.primaryAudioSource.pitch)), "Pitch:");
                if (AO.primaryAudioSource.clip)
                {
                    ShowString(string.Format("{0} / {1}", AO.primaryAudioSource.time, AO.clipLength), "Time:");
                }

#if UNITY_AUDIO_FEATURES_4_1
                if (AO.scheduledPlayingAtDspTime > 0)
                {
                    ShowFloat((float)(AO.scheduledPlayingAtDspTime - AudioSettings.dspTime), "Scheduled Play In seconds: ");
                }
#endif
            }
            if (AO.secondaryAudioSource)
            {
                ShowString(string.Format("Secondary: T:{0} Playing:{1}", AO.secondaryAudioSource.time, AO.secondaryAudioSource.isPlaying), "Time:");
            }


            EditorGUILayout.BeginHorizontal();
            if (!AO.IsPaused())
            {
                if (GUILayout.Button("Pause"))
                {
                    AO.Pause();
                }
            }
            else
            {
                if (GUILayout.Button("Unpause"))
                {
                    AO.Unpause();
                }
            }

            if (GUILayout.Button("Stop"))
            {
                AO.Stop(0.5f);
            }

            if (GUILayout.Button("FadeIn"))
            {
                AO.FadeIn(2);
            }
            if (GUILayout.Button("FadeOut"))
            {
                AO.FadeOut(2);
            }
            if (GUILayout.Button("Refresh"))
            {
            }
            EditorGUILayout.EndHorizontal();


            EndInspectorGUI();
        }
Ejemplo n.º 22
0
    public void Play_Sound(AudioObject audio)
    {
        GameObject x = Instantiate(soundprefab);

        x.GetComponent <SoundDestructionScript>().SetAudioClip(audio.clip);
    }
Ejemplo n.º 23
0
    public override bool CreateNewCategory(out AudioCategory acCategory, string categoryId, AudioObject aoPrefab, float fVolume = 1.0f, bool bStartEnabled = true)
    {
        if (_isLogged)
        {
            Debug.LogFormat(this, "Audio Manager: Trying to create category[{0}]", categoryId);
        }
        acCategory = null;
        if (cateogriesMap.ContainsKey(categoryId))
        {
            if (_isLogged)
            {
                Debug.LogWarningFormat(this, "Audio Manager: A Category with Id[{0}] already exists!. Can't create new, try different Id.", categoryId);
            }
        }
        else
        {
            if (aoPrefab == null)
            {
                acCategory = new AudioCategory(categoryId, audioObjDefaultPrefab, fVolume, bStartEnabled);
            }
            else
            {
                acCategory = new AudioCategory(categoryId, aoPrefab, fVolume, bStartEnabled);
            }

            cateogriesMap.Add(categoryId, acCategory);
            categoriesList.Add(acCategory);

            if (_isLogged)
            {
                Debug.LogFormat(this, "Audio Manager: Category with Id[{0}] was succesfully created!", categoryId);
            }
            return(true);
        }
        return(false);
    }
Ejemplo n.º 24
0
 public void Pause(AudioObject TargetObject)
 {
     TargetObject.Pause();
 }
Ejemplo n.º 25
0
        private static string FormatVolume(float volume)
        {
            var num = 20f * Mathf.Log10(AudioObject.TransformVolume(volume));

            return(string.Format("{0:0.000} ({1:0.0} dB)", volume, num));
        }
Ejemplo n.º 26
0
    public override void TryPlay(SoundPlayData Data)
    {
        if (!CanPlay(Data))
        {
            return;
        }

        ///이미 플레이중인 같은 클립이 있는지 검사합니다.
        AudioObject AlreadyPlayingAudio = m_Channel.m_AudioActiveObjectList.Find(x => x.m_Data.m_strSoundFileName == Data.m_strSoundFileName);
        bool        bAlreadyPlaying     = AlreadyPlayingAudio != null;
        ///이미 플레이중인 같은 클립의 오디오가 있다면 새로운 오디오는 그 오디오를 가져오고 아니라면 풀에서 꺼내옵니다.
        AudioObject NewAudioObject = bAlreadyPlaying ? AlreadyPlayingAudio : m_Channel.GetAudioObject();

        #region Exception
        ///버그에 대한 예외처리 및 디버그 코드 작성
        ExceptionProcess(NewAudioObject);
        #endregion

        ///오디오 정보를 세팅합니다.
        NewAudioObject.SetAudioChannel(m_Channel);
        NewAudioObject.SetAudioGroup(NewAudioObject.m_Data.m_eAudioGroup);
        NewAudioObject.SetPlayData(Data);
        NewAudioObject.SetParent(NewAudioObject.m_Data.m_trPlace);
        NewAudioObject.SetPriority(m_Channel.m_nPriority);
        NewAudioObject.transform.localPosition = Vector3.zero;
        NewAudioObject.OnStop = null;

        m_Channel.AddAudioObject(NewAudioObject);

        NewAudioObject.OnStop = () =>
        {
            m_Channel.DeactiveList_Enqueue(NewAudioObject);
            m_Channel.RemoveAudioObject(NewAudioObject);
        };

        ///같은 BGM을 플레이하는경우
        if (bAlreadyPlaying && NewAudioObject.m_bFadingOut)
        {
            ///가장 최근에 플레이한 BGM으로 교체하기위해 앞에서 빼고 뒤에 넣어줌
            m_Channel.m_AudioActiveObjectList.Remove(NewAudioObject);
            m_Channel.m_AudioActiveObjectList.Add(NewAudioObject);
        }
        else if (!bAlreadyPlaying)
        {
            NewAudioObject.FadeVolume = 0;
        }

        AudioObject TargetObject = m_Channel.m_AudioActiveObjectList.Count > 0 ? m_Channel.m_AudioActiveObjectList[m_Channel.m_AudioActiveObjectList.Count - 1] : null;
        if ((bAlreadyPlaying && NewAudioObject.m_bFadingOut) || !bAlreadyPlaying)
        {
            ///가장 최근에 플레이한 오브젝트가 일시정지하려는 중이 아니면 중지시킵니다.
            if (TargetObject != null)
            {
                if (!TargetObject.IsPause)
                {
                    if (!TargetObject.m_bFadingOut)
                    {
                        TargetObject.FadeOutAndPause();
                    }
                }
            }

            ///대상 BGM을 루프로 재생합니다.
            if (!bAlreadyPlaying)
            {
                NewAudioObject.Play(Data.m_LoadedAudioClip, NewAudioObject.m_Data.m_fDelay, 1, true, NewAudioObject.m_Data.m_fTime);
            }
            if (NewAudioObject.m_Data.m_bUseFadeIn)
            {
                NewAudioObject.FadeIn();
            }
        }


        ///이미 플레이 중이지 않았다면 활성화된 리스트에 추가합니다.
        if (!bAlreadyPlaying)
        {
            m_Channel.m_AudioActiveObjectList.Add(NewAudioObject);
        }

        m_Channel.m_AudioFilter.RecordFilterInfo(new AudioFilterInfo(Data.m_strSoundFileName));
        m_Channel.PauseBGM();

        AudioClipGroup.RecordPlayingClip(Data.m_LoadedAudioClip);
    }
Ejemplo n.º 27
0
 public bool IsPlayingAudioObject(AudioObject audioObject)
 {
     return(_currentAudioObject == audioObject && _source != null && _source.isPlaying);
 }
 private IEnumerator DoViewing()
 {
     if (!(model == null))
     {
         model.set_localEulerAngles(Vector3.get_zero());
         uiRenderTexture.enableTexture = true;
         float rot_wait = 1f;
         if (playerLoader != null)
         {
             model.set_localPosition(modelPos);
             model.set_localEulerAngles(modelRot);
         }
         else if (npcLoader != null)
         {
             model.set_localPosition(modelPos);
             model.set_localEulerAngles(modelRot);
         }
         else if (enemyLoader != null)
         {
             if (enemyDispplayInfo == null)
             {
                 Bounds bounds = default(Bounds);
                 int    j      = 0;
                 for (int i = enemyLoader.renderersBody.Length; j < i; j++)
                 {
                     bounds.Encapsulate(enemyLoader.renderersBody[j].get_bounds());
                 }
                 Vector3   extents  = bounds.get_extents();
                 float     z        = extents.x * 0.5f / Mathf.Tan(0.3926991f) + 1f;
                 Transform obj      = model;
                 Vector3   extents2 = bounds.get_extents();
                 obj.set_localPosition(new Vector3(0f, extents2.y * -0.5f, z));
                 model.set_localEulerAngles(new Vector3(0f, 180f, 0f));
             }
             else
             {
                 model.set_localPosition(new Vector3(0f, -0.8f, 5f));
                 if (enemyDispplayInfo.seIdhowl > 0 && isEnemyHowl)
                 {
                     audioObject = SoundManager.PlayUISE(enemyDispplayInfo.seIdhowl);
                 }
                 enemyLoader.body.set_localPosition(enemyDispplayInfo.pos);
                 enemyLoader.body.set_localEulerAngles(new Vector3(0f, enemyDispplayInfo.angleY, 0f));
                 enemyAnimCtrl = model.get_gameObject().AddComponent <EnemyAnimCtrl>();
                 enemyAnimCtrl.Init(enemyLoader, uiRenderTexture.renderCamera, false);
                 Animator animator = enemyLoader.GetAnimator();
                 if (animator != null)
                 {
                     int stateHash = Animator.StringToHash("Base Layer.GACHA_HOWL");
                     if (animator.HasState(0, stateHash))
                     {
                         animator.Play(stateHash, 0, 0f);
                         animator.Update(0f);
                     }
                 }
             }
         }
         Vector3      lightDir = new Vector3(1.19f, -1.59f, -1f);
         Quaternion   rotation = Quaternion.AngleAxis(1f, new Vector3(-0.07124705f, 0f, -0.9974587f));
         MeshRenderer renderer = null;
         if (lightRotation)
         {
             renderer = model.GetComponentInChildren <MeshRenderer>();
         }
         while (true)
         {
             if (itemLoader != null)
             {
                 model.set_localPosition(new Vector3(0f, 0f, itemLoader.displayInfo.zFromCamera));
                 itemLoader.ApplyDisplayInfo();
                 if (rot_wait <= 0f)
                 {
                     model.Rotate(new Vector3(0f, rotateSpeed, 0f) * Time.get_deltaTime());
                 }
                 else
                 {
                     rot_wait -= Time.get_deltaTime();
                 }
                 if (lightRotation)
                 {
                     lightDir = rotation * lightDir;
                     renderer.get_material().SetVector("_LightDir", Vector4.op_Implicit(lightDir));
                 }
             }
             yield return((object)null);
         }
     }
     Log.Error("model is null!!");
 }
Ejemplo n.º 29
0
    void DrawGuiLeftSide()
    {
        var headerStyle = new GUIStyle(GUI.skin.label);

        headerStyle.normal.textColor = new UnityEngine.Color(1, 1, 0.5f);
        string txt = string.Format("ClockStone Audio Toolkit - Demo");

        GUI.Label(new Rect(22, 10, 500, 20), txt, headerStyle);

        int ypos        = 10;
        int yposOff     = 35;
        int buttonWidth = 200;

        ypos += 50;

        GUI.Label(new Rect(250, ypos, buttonWidth, 30), "Global Volume");

        AudioController.SetGlobalVolume(GUI.HorizontalSlider(new Rect(250, ypos + 20, buttonWidth, 30), AudioController.GetGlobalVolume(), 0, 1));


        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Cross-fade to music track 1"))
        {
            AudioController.PlayMusic("MusicTrack1");
        }

        ypos += yposOff;

        GUI.Label(new Rect(250, ypos + 10, buttonWidth, 30), "Music Volume");

        float musicVolumeNew = GUI.HorizontalSlider(new Rect(250, ypos + 30, buttonWidth, 30), musicVolume, 0, 1);

        if (musicVolumeNew != musicVolume)
        {
            musicVolume = musicVolumeNew;
            AudioController.SetCategoryVolume("Music", musicVolume);
        }

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Cross-fade to music track 2"))
        {
            AudioController.PlayMusic("MusicTrack2");
        }

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Stop Music"))
        {
            AudioController.StopMusic(0.3f);
        }

        ypos += yposOff;

        bool musicPausedNew = GUI.Toggle(new Rect(20, ypos, buttonWidth, 30), musicPaused, "Pause All Audio");

        if (musicPausedNew != musicPaused)
        {
            musicPaused = musicPausedNew;

            if (musicPaused)
            {
                AudioController.PauseAll(0.1f);
            }
            else
            {
                AudioController.UnpauseAll(0.1f);
            }
        }


        ypos += yposOff;
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Sound with random pitch"))
        {
            AudioController.Play("RandomPitchSound");
        }
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Sound with alternatives"))
        {
            AudioObject soundObj = AudioController.Play("AlternativeSound");
            if (soundObj != null)
            {
                soundObj.completelyPlayedDelegate = OnAudioCompleteleyPlayed;
            }
        }
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Both"))
        {
            AudioObject soundObj = AudioController.Play("RandomAndAlternativeSound");
            if (soundObj != null)
            {
                soundObj.completelyPlayedDelegate = OnAudioCompleteleyPlayed;
            }
        }
        ypos += yposOff;

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Play Music Playlist"))
        {
            AudioController.PlayMusicPlaylist();
        }

        ypos += yposOff;

        if (AudioController.IsPlaylistPlaying() && GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Next Track on Playlist"))
        {
            AudioController.PlayNextMusicOnPlaylist();
        }

        ypos += 32;

        if (AudioController.IsPlaylistPlaying() && GUI.Button(new Rect(20, ypos, buttonWidth, 30), "Previous Track on Playlist"))
        {
            AudioController.PlayPreviousMusicOnPlaylist();
        }

        ypos += yposOff;
        AudioController.Instance.loopPlaylist = GUI.Toggle(new Rect(20, ypos, buttonWidth, 30), AudioController.Instance.loopPlaylist, "Loop Playlist");
        ypos += yposOff;
        AudioController.Instance.shufflePlaylist = GUI.Toggle(new Rect(20, ypos, buttonWidth, 30), AudioController.Instance.shufflePlaylist, "Shuffle Playlist ");
    }
Ejemplo n.º 30
0
    void DrawGuiRightSide()
    {
        int ypos = 10;
        int yposOff = 35;
        int buttonWidth = 300;

        if ( !wasCategoryAdded )
        {
            if ( customAudioClip != null && GUI.Button( new Rect( Screen.width - ( buttonWidth + 20 ), ypos, buttonWidth, 30 ), "Create new category with custom AudioClip" ) )
            {
                var category = AudioController.NewCategory( "Custom Category" );
                AudioController.AddToCategory( category, customAudioClip, "CustomAudioItem" );
                wasClipAdded = true;
                wasCategoryAdded = true;
            }
            ypos += yposOff;
        }
        else
        {
            if ( GUI.Button( new Rect( Screen.width - ( buttonWidth + 20 ), ypos, buttonWidth, 30 ), "Play custom AudioClip" ) )
            {
                AudioController.Play( "CustomAudioItem" );
            }

            ypos += yposOff;

            if ( wasClipAdded )
            {


                if ( GUI.Button( new Rect( Screen.width - ( buttonWidth + 20 ), ypos, buttonWidth, 30 ), "Remove custom AudioClip" ) )
                {
                    if ( AudioController.RemoveAudioItem( "CustomAudioItem" ) )
                    {
                        wasClipAdded = false;
                    }
                }
            }
        }

        ypos += yposOff;

#if !UNITY_AUDIO_FEATURES_4_1
        BeginDisabledGroup( true );
#endif

        if ( GUI.Button( new Rect( Screen.width - ( buttonWidth + 20 ), ypos, buttonWidth, 30 ), "Play gapless audio loop [Unity v4.1]" ) )
        {
            AudioController.Play( "GaplessLoopTest" ).Stop( 1, 4 );
        }
        ypos += yposOff;

        if ( GUI.Button( new Rect( Screen.width - ( buttonWidth + 20 ), ypos, buttonWidth, 30 ), "Play random loop sequence [Unity v4.1]" ) )
        {
            AudioController.Play( "RandomLoopSequence" );
        }
        ypos += yposOff;

        if ( GUI.Button( new Rect( Screen.width - ( buttonWidth + 20 ), ypos, buttonWidth, 50 ), "Play intro-loop-outro sequence\ngatling gun [Unity v4.1]" ) )
        {
            introLoopOutroAudio = AudioController.Play( "IntroLoopOutro_Gun" );
        }

        ypos += 20;
        ypos += yposOff;

        BeginDisabledGroup( introLoopOutroAudio == null  );

        if ( GUI.Button( new Rect( Screen.width - ( buttonWidth + 20 ), ypos, buttonWidth, 30 ), "Finish gatling gun sequence [Unity v4.1]" ) )
        {
            introLoopOutroAudio.FinishSequence();
        }

        EndDisabledGroup();
        ypos += yposOff;

#if !UNITY_AUDIO_FEATURES_4_1
       EndDisabledGroup();
#endif

        ypos += 10;

        const float textWidth = 500;

        GUI.skin.box.alignment = TextAnchor.UpperLeft;
        GUI.skin.box.wordWrap = true;
        GUI.skin.box.richText = true;

        const string infoText =
            "<size=18><color=orange>Welcome to Audio Toolkit!\n</color></size>" +
            "<size=14>The number one audio management solution for Unity used in AAA titles!\n\n" +
            "What does the toolkit do? In a nutshell:\n" + 
            " 1) It separates scripting from managing audio. " +
            "Trigger audio per script with a simple function call, e.g. <color=lightblue>AudioController.Play( \"MySoundID\" );</color>\n" +
            " 2) Let your audio artist define complex behaviours of what 'MySoundID' will sound like. All within the Unity inspector.\n" +
            " 3) It makes life much easier in many ways: control volume by categories, play random effects, chain sequences of sound files, define sound alternatives, manage playlists, ...\n" +
            "\n<color=cyan>Select the AudioController game object to see how to configure audio in the inspector!</color>" + 
            "</size>";

        GUI.Box( new Rect( Screen.width - textWidth, ypos, textWidth - 10 , Screen.height - ypos - 60 ), infoText );

    }
Ejemplo n.º 31
0
        private void TryAdd()
        {
            try
            {
                string name = (nameTextBox.Text.Trim().Equals(string.Empty) ? "New Game Object" : nameTextBox.Text);

                GameObject obj = new GameObject();
                switch (itemListBox.SelectedIndex)
                {
                case 1:
                    obj = new Sprite();
                    break;

                case 2:
                    obj = new AnimatedSprite();
                    break;

                case 3:
                    obj = new Tileset();
                    break;

                case 4:
                    obj = new AudioObject();
                    break;

                case 5:
                    obj = new BMFont();
                    break;

                case 6:
                    obj = new ParticleEmitter();
                    break;
                }

                obj.Name = name;
                DragDropTreeViewItem insertedItem;
                if (addToSelectedCheckBox.IsChecked == true)
                {
                    if (targetObject == null)
                    {
                        SceneManager.ActiveScene.GameObjects.Add(obj);
                    }
                    else
                    {
                        targetObject.Children.Add(obj);
                    }

                    insertedItem = EditorHandler.SceneTreeView.AddNode(target as DragDropTreeViewItem, obj, EditorHandler.SceneTreeView.GameObjectImageSource(obj));
                }
                else
                {
                    SceneManager.ActiveScene.GameObjects.Add(obj);
                    insertedItem = EditorHandler.SceneTreeView.AddNode(null, obj, EditorHandler.SceneTreeView.GameObjectImageSource(obj));
                }

                EditorHandler.SelectedGameObjects.Clear();
                EditorHandler.SelectedGameObjects.Add(obj);
                EditorHandler.ChangeSelectedObjects();

                this.Close();
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Ejemplo n.º 32
0
 private void Start()
 {
     audioObject = GetComponent <AudioObject>();
 }
Ejemplo n.º 33
0
    /// <summary>
    /// For 3D sounds. Adds a new AudioSource to the gameobject, plays its clip.
    /// </summary>
    /// <param name="name"></param>
    /// <param name="gameObject"></param>
    public void PlayOnGameObject(AudioType audioName, GameObject gameObject)
    {
        AudioObject newAudio = AddAudioToGameObject(audioName, gameObject);

        newAudio.Play();
    }
Ejemplo n.º 34
0
    void OnGUI()
    {
        GUI.Label(new Rect(22, 10, 200, 20), "ClockStone Audio Toolkit Demo");

        int ypos    = 10;
        int yposOff = 35;

        GUI.Label(new Rect(250, ypos, 200, 30), "Global Volume");

        AudioController.SetGlobalVolume(GUI.HorizontalSlider(new Rect(250, ypos + 30, 200, 30), AudioController.GetGlobalVolume(), 0, 1));

        ypos += 50;

        if (GUI.Button(new Rect(20, ypos, 200, 30), "Cross-fade to music track 1"))
        {
            AudioController.PlayMusic("MusicTrack1");
        }

        GUI.Label(new Rect(250, ypos, 200, 30), "Music Volume");

        float musicVolumeNew = GUI.HorizontalSlider(new Rect(250, ypos + 30, 200, 30), musicVolume, 0, 1);

        if (musicVolumeNew != musicVolume)
        {
            musicVolume = musicVolumeNew;
            AudioController.SetCategoryVolume("Music", musicVolume);
        }

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, 200, 30), "Cross-fade to music track 2"))
        {
            AudioController.PlayMusic("MusicTrack2");
        }

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, 200, 30), "Stop Music"))
        {
            AudioController.StopMusic(0.3f);
        }

        ypos += yposOff;

        bool musicPausedNew = GUI.Toggle(new Rect(20, ypos, 200, 30), musicPaused, "Pause Music");

        if (musicPausedNew != musicPaused)
        {
            musicPaused = musicPausedNew;

            if (musicPaused)
            {
                AudioController.PauseMusic();
            }
            else
            {
                AudioController.UnpauseMusic();
            }
        }


        ypos += yposOff;
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, 200, 30), "Play Sound with random pitch"))
        {
            AudioController.Play("RandomPitchSound");
        }
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, 200, 30), "Play Sound with alternatives"))
        {
            AudioObject soundObj = AudioController.Play("AlternativeSound");
            if (soundObj != null)
            {
                soundObj.completelyPlayedDelegate = OnAudioCompleteleyPlayed;
            }
        }
        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, 200, 30), "Play Both"))
        {
            AudioObject soundObj = AudioController.Play("RandomAndAlternativeSound");
            if (soundObj != null)
            {
                soundObj.completelyPlayedDelegate = OnAudioCompleteleyPlayed;
            }
        }
        ypos += yposOff;

        ypos += yposOff;

        if (GUI.Button(new Rect(20, ypos, 200, 30), "Play Music Playlist"))
        {
            AudioController.PlayMusicPlaylist();
        }

        ypos += yposOff;

        if (AudioController.IsPlaylistPlaying() && GUI.Button(new Rect(20, ypos, 200, 30), "Next Track on Playlist"))
        {
            AudioController.PlayNextMusicOnPlaylist();
        }

        ypos += 32;

        if (AudioController.IsPlaylistPlaying() && GUI.Button(new Rect(20, ypos, 200, 30), "Previous Track on Playlist"))
        {
            AudioController.PlayPreviousMusicOnPlaylist();
        }

        ypos += yposOff;
        AudioController.Instance.loopPlaylist = GUI.Toggle(new Rect(20, ypos, 200, 30), AudioController.Instance.loopPlaylist, "Loop Playlist");
        ypos += yposOff;
        AudioController.Instance.shufflePlaylist = GUI.Toggle(new Rect(20, ypos, 200, 30), AudioController.Instance.shufflePlaylist, "Shuffle Playlist ");

        if (GUI.Button(new Rect(Screen.width / 2 - 150, Screen.height - 40, 300, 30), "Video tutorial & more info..."))
        {
            Application.OpenURL("http://unity.clockstone.com");
        }
    }
Ejemplo n.º 35
0
        private void button1_Click(object sender, EventArgs e)
        {
            bool errorCheck = Validation();

            if (errorCheck)
            {
                return;
            }
            else
            {
                string   classname   = comboBox1.Items[comboBox1.SelectedIndex].ToString();
                string   name        = textBox1.Text;
                string   author      = textBox2.Text;
                string   publisher   = textBox3.Text;
                DateTime publishDate = monthCalendar1.SelectionStart;
                int      stock       = 0;
                if (textBox5.Enabled)
                {
                    stock = Int16.Parse(textBox5.Text);
                }
                string type = "";
                if (textBox6.Enabled)
                {
                    type = textBox6.Text;
                }
                bool isDigital = false;
                switch (classname)
                {
                case "Book":
                    BookObject newBook = new BookObject(name, author, publisher, publishDate, stock);
                    returnItem = new BookObserver(newBook);
                    break;

                case "E-Book":
                    EBookObject newEBook = new EBookObject(name, author, publisher, publishDate);
                    returnItem = new EBookObserver(newEBook);
                    break;

                case "Video (Physical)":
                case "Video (Digital)":
                    if (classname.Contains("Digital"))
                    {
                        isDigital = true;
                    }
                    VideoObject newVideo = new VideoObject(name, type, author, publishDate, publisher, isDigital, stock);
                    returnItem = new VideoObserver(newVideo);
                    break;

                case "Audio (Physical)":
                case "Audio (Digital)":
                    if (classname.Contains("Digital"))
                    {
                        isDigital = true;
                    }
                    AudioObject newAudio = new AudioObject(name, type, author, publishDate, publisher, isDigital, stock);
                    returnItem = new AudioObserver(newAudio);
                    break;

                default:
                    break;
                }
                this.DialogResult = DialogResult.OK;
                this.Close();
                return;
            }
        }
Ejemplo n.º 36
0
 public void ChangeMusic(string name)
 {
     nextBGM   = SoundManager.Instance.GetAudioObject(name);
     fadingOut = true;
 }
Ejemplo n.º 37
0
 public override bool CreateNewCategory(out AudioCategory acCategory, string categoryId, AudioObject aoPrefab, float volume = 1.0f, bool startEnabled = true)
 {
     if (wrappedService != null)
     {
         Debug.LogFormat("Create New Category: {0} with prefab:{1} vol:{2} startStatus:{3}", categoryId, aoPrefab.name, volume, startEnabled);
         return wrappedService.CreateNewCategory(out acCategory, categoryId, aoPrefab, volume, startEnabled);
     }
     acCategory = null;
     return false;
 }
Ejemplo n.º 38
0
    void Awake()
    {
        thisObj=gameObject;
        thisT=transform;

        camT=Camera.main.transform;

        if(playMusic && musicList!=null && musicList.Length>0){
            GameObject musicObj=new GameObject();
            musicObj.name="MusicSource";
            musicObj.transform.position=camT.position;
            musicObj.transform.parent=camT;
            musicSource=musicObj.AddComponent<AudioSource>();
            musicSource.loop=false;
            musicSource.playOnAwake=false;
            musicSource.volume=initialMusicVolume;

            musicSource.ignoreListenerVolume=true;

            if(listenerT!=null){
                musicObj.transform.parent=listenerT;
                musicObj.transform.localPosition=Vector3.zero;
            }

            StartCoroutine(MusicRoutine());
        }

        audioObject=new AudioObject[20];
        for(int i=0; i<audioObject.Length; i++){
            GameObject obj=new GameObject();
            obj.name="AudioSource"+i;

            AudioSource src=obj.AddComponent<AudioSource>();
            src.playOnAwake=false;
            src.loop=false;
            src.minDistance=minFallOffRange;

            Transform t=obj.transform;
            t.parent=thisObj.transform;

            audioObject[i]=new AudioObject(src, t);
        }

        AudioListener.volume=initialSFXVolume;

        if(instance==null) instance=this;
    }
Ejemplo n.º 39
0
 private void UpdatePitch(AudioObject _audioObject)
 {
     _audioObject.realPitch         = Mathf.Clamp(_audioObject.targetPitch * m_parentPitch * _audioObject.setPitch, -3f, 3f);
     _audioObject.audioSource.pitch = _audioObject.realPitch;
 }
Ejemplo n.º 40
0
    void Awake()
    {
        //Init();
        thisObj=gameObject;

        cam=Camera.main.transform;

        if(playMusic && musicList!=null && musicList.Length>0){
            GameObject musicObj=new GameObject();
            musicObj.name="MusicSource";
            musicObj.transform.position=cam.position;
            musicObj.transform.parent=cam;
            musicSource=musicObj.AddComponent<AudioSource>();
            musicSource.loop=false;
            musicSource.playOnAwake=false;

            StartCoroutine(MusicRoutine());
        }

        audioObject=new AudioObject[20];
        for(int i=0; i<audioObject.Length; i++){
            GameObject obj=new GameObject();
            obj.name="AudioSource";

            AudioSource src=obj.AddComponent<AudioSource>();
            src.playOnAwake=false;
            src.loop=false;
            src.minDistance=minFallOffRange;

            Transform t=obj.transform;
            t.parent=thisObj.transform;

            audioObject[i]=new AudioObject(src, t);
        }
    }
Ejemplo n.º 41
0
    public void Play(GameObject _parentGameObject)
    {
        if (m_nextAudioObjectToPlay == null && m_instances.Capacity > 0)
        {
            switch (m_stealingBehaviour)
            {
            case STEALINGBEHAVIOUR.StealOldest:
                m_instances = (from audioObject in m_instances
                               orderby audioObject.initTime
                               select audioObject).ToList();
                m_nextAudioObjectToPlay = m_instances[0];
                m_nextAudioObjectToPlay.audioSource.Stop();
                AudioController.Instance.Log("StealOldest " + base.name);
                break;

            case STEALINGBEHAVIOUR.StealNewest:
                m_instances = (from audioObject in m_instances
                               orderby audioObject.initTime descending
                               select audioObject).ToList();
                m_nextAudioObjectToPlay = m_instances[0];
                m_nextAudioObjectToPlay.audioSource.Stop();
                AudioController.Instance.Log("StealNewest " + base.name);
                break;

            case STEALINGBEHAVIOUR.StealQuietest:
                if (m_audioListener != null)
                {
                    foreach (AudioObject instance in m_instances)
                    {
                        instance.listenerDistance = Mathf.Sqrt((m_audioListener.gameObject.transform.position - instance.gameObject.transform.position).sqrMagnitude);
                    }
                    m_instances = (from audioObject in m_instances
                                   orderby audioObject.listenerDistance descending
                                   select audioObject).ToList();
                    m_nextAudioObjectToPlay = m_instances[0];
                    m_nextAudioObjectToPlay.audioSource.Stop();
                    AudioController.Instance.Log("StealQuietest " + base.name);
                }
                break;

            case STEALINGBEHAVIOUR.JustFail:
                m_nextAudioObjectToPlay = null;
                AudioController.Instance.Log("JustFail " + base.name);
                break;

            case STEALINGBEHAVIOUR.JustFailIfQuietest:
                if (m_audioListener != null && _parentGameObject != null)
                {
                    float num = Mathf.Sqrt((m_audioListener.gameObject.transform.position - _parentGameObject.transform.position).sqrMagnitude);
                    foreach (AudioObject instance2 in m_instances)
                    {
                        instance2.listenerDistance = Mathf.Sqrt((m_audioListener.gameObject.transform.position - instance2.gameObject.transform.position).sqrMagnitude);
                    }
                    m_instances = (from audioObject in m_instances
                                   orderby audioObject.listenerDistance descending
                                   select audioObject).ToList();
                    if (num < m_instances[0].listenerDistance)
                    {
                        m_nextAudioObjectToPlay = m_instances[0];
                        m_nextAudioObjectToPlay.audioSource.Stop();
                        AudioController.Instance.Log("JustFailIfQuietest " + base.name);
                    }
                }
                break;
            }
        }
        if (m_nextAudioObjectToPlay != null)
        {
            if (m_audioClip == null || !(m_nextAudioObjectToPlay.gameObject != null))
            {
                return;
            }
            m_nextAudioObjectToPlay.gameObject.SetActive(value: true);
            m_nextAudioObjectToPlay.initTime         = AudioSettings.dspTime;
            m_nextAudioObjectToPlay.parentGameObject = _parentGameObject;
            if (m_audioClip.Length > 1)
            {
                m_nextAudioObjectToPlay.audioSource.clip = m_audioClip[Random.Range(0, m_audioClip.Length)];
            }
            else
            {
                m_nextAudioObjectToPlay.audioSource.clip = m_audioClip[0];
            }
            if (m_settings.randomiseStartSeekTime)
            {
                m_nextAudioObjectToPlay.audioSource.time = UnityEngine.Random.Range(0f, m_nextAudioObjectToPlay.audioSource.clip.length);
            }
            if (m_randomiseVolume)
            {
                m_nextAudioObjectToPlay.targetVolume = Mathf.Clamp(UnityEngine.Random.Range(m_minVolume, m_maxVolume), 0f, 1f);
            }
            else
            {
                m_nextAudioObjectToPlay.targetVolume = m_volume;
            }
            if (m_randomisePitch)
            {
                m_nextAudioObjectToPlay.targetPitch = Mathf.Clamp(UnityEngine.Random.Range(m_minPitch, m_maxPitch), -3f, 3f);
            }
            else
            {
                m_nextAudioObjectToPlay.targetPitch = m_pitch;
            }
            m_nextAudioObjectToPlay.realPitch = m_nextAudioObjectToPlay.targetPitch * m_parentPitch * m_nextAudioObjectToPlay.setPitch;
            if (m_positioning.randomisePanStereo)
            {
                float panStereo = UnityEngine.Random.Range(Mathf.Clamp(m_positioning.minRandomPan, -1f, 1f), Mathf.Clamp(m_positioning.maxRandomPan, -1f, 1f));
                m_nextAudioObjectToPlay.audioSource.panStereo = panStereo;
            }
            if (m_fadeInTime > 0f)
            {
                m_nextAudioObjectToPlay.audioSource.volume = 0f;
                m_nextAudioObjectToPlay.realVolume         = 0f;
                m_nextAudioObjectToPlay.curveFadeModifier  = 0f;
                m_nextAudioObjectToPlay.audioState         = AudioObject.AUDIOSTATE.FadeIn;
                if (m_nextAudioObjectToPlay.audioSource.clip != null)
                {
                    m_nextAudioObjectToPlay.audioSource.Play();
                }
            }
            else
            {
                m_nextAudioObjectToPlay.realVolume         = m_nextAudioObjectToPlay.targetVolume * m_parentVolume * m_nextAudioObjectToPlay.setVolume;
                m_nextAudioObjectToPlay.audioSource.volume = m_nextAudioObjectToPlay.realVolume;
                m_nextAudioObjectToPlay.audioState         = AudioObject.AUDIOSTATE.Playing;
                if (m_nextAudioObjectToPlay.audioSource.clip != null)
                {
                    m_nextAudioObjectToPlay.audioSource.Play();
                }
            }
            m_settings.timesTriggered += 1f;
            m_nextAudioObjectToPlay    = null;
        }
        else
        {
            AudioController.Instance.Log("Failed to Find AudioObject to PlaySound - " + base.name);
        }
    }
Ejemplo n.º 42
0
 public static AudioPlayer PlaceAmbientSound(GameObject parent, AudioClip clip, bool loop = true, bool pausable = true)
 {
     AudioObject ao = new AudioObject(parent, clip, 0, 0, loop, pausable);
     return AudioManager.PlayAudio(ao);
 }
    private void DrawInspector()
    {
        AO = (AudioObject) target;

        BeginInspectorGUI();

        //DrawDefaultInspector();
        //VerticalSpace();

        ShowString( AO.audioID, "Audio ID:" );
        ShowString( AO.category != null ? AO.category.Name : "---" , "Audio Category:" );
        ShowString( FormatVolume( AO.volume ), "Item Volume:" );
        ShowString( FormatVolume( AO.volumeTotal ), "Total Volume:" );
        ShowFloat( (float) AO.startedPlayingAtTime, "Time Started:" );
        if ( AO.primaryAudioSource )
        {
            ShowString( string.Format( "{0:0.00} half-tones", AudioObject.InverseTransformPitch( AO.primaryAudioSource.pitch ) ), "Pitch:" );
            if ( AO.primaryAudioSource.clip )
            {
                ShowString( string.Format( "{0} / {1}", AO.primaryAudioSource.time, AO.clipLength ), "Time:" );
            }

#if UNITY_AUDIO_FEATURES_4_1
            if ( AO.scheduledPlayingAtDspTime > 0 )
            {
                ShowFloat( (float) ( AO.scheduledPlayingAtDspTime - AudioSettings.dspTime ), "Scheduled Play In seconds: " );

            }
#endif

        }
        if ( AO.secondaryAudioSource )
        {
           
           ShowString( string.Format( "Secondary: T:{0} Playing:{1}", AO.secondaryAudioSource.time, AO.secondaryAudioSource.isPlaying ), "Time:" );
        }
        

        EditorGUILayout.BeginHorizontal();
        if ( !AO.IsPaused() )
        {
            if ( GUILayout.Button( "Pause" ) )
            {
                AO.Pause();
            }
        }
        else
        {
            if ( GUILayout.Button( "Unpause" ) )
            {
                AO.Unpause();
            }
        }

        if ( GUILayout.Button( "Stop" ) )
        {
            AO.Stop( 0.5f );
        }
        
        if ( GUILayout.Button( "FadeIn" ) )
        {
            AO.FadeIn( 2 );
        }
        if ( GUILayout.Button( "FadeOut" ) )
        {
            AO.FadeOut( 2 );
        }
        if ( GUILayout.Button( "Refresh" ) )
        {
        }
        EditorGUILayout.EndHorizontal();


        EndInspectorGUI();
    }