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); }
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(); }
private void InitSound() { if (BorisSound == null) return; var audio = new AudioObject(this.gameObject, BorisSound, 1, 0, true, true); SoundPlayer = AudioManager.PlayAudio(audio); StartSound(); }
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; }
public static void Init(AudioObject obj, AudioSource source, int managed_id = -1) { obj.InitParams(); obj.audioSource = source; obj.ID = managed_id; }
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(); } }
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"); }
public void Resume(AudioObject TargetObject) { TargetObject.Resume(); }
public void RemoveSE(AudioObject so) { playingObjects[so.clipId].Remove(so); playingSENum--; }
/// <summary> /// 오디오 오브젝트를 채널에 생성하고 플레이하면 알아서 꺼내오는식으로 하는것이 좋을듯하다... /// </summary> public AudioObject CreateAudioObject() { AudioObject NewAudioObject = GameObject.Instantiate(AudioObjectPrefab); return(NewAudioObject); }
void OnAudioCompleteleyPlayed(AudioObject audioObj) { Debug.Log("Finished playing " + audioObj.audioID + " with clip " + audioObj.audio.clip.name); }
//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; }
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(); }
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(); } }
/// <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(); }
/// <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)); }
/// <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))); }
public static AudioPlayer PlayAudio(AudioObject clip) { AudioPlayer ap = new AudioPlayer(clip); instance.audioPlayers.Add(ap); return ap; }
string FormatVolume(float volume) { float dB = 20 * Mathf.Log10(AudioObject.TransformVolume(volume)); return(string.Format("{0:0.000} ({1:0.0} dB)", volume, dB)); }
void OnAudioCompleteleyPlayed( AudioObject audioObj ) { Debug.Log( "Finished playing " + audioObj.audioID + " with clip " + audioObj.audio.clip.name ); }
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(); }
public void Play_Sound(AudioObject audio) { GameObject x = Instantiate(soundprefab); x.GetComponent <SoundDestructionScript>().SetAudioClip(audio.clip); }
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); }
public void Pause(AudioObject TargetObject) { TargetObject.Pause(); }
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)); }
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); }
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!!"); }
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 "); }
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 ); }
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); } }
private void Start() { audioObject = GetComponent <AudioObject>(); }
/// <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(); }
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"); } }
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; } }
public void ChangeMusic(string name) { nextBGM = SoundManager.Instance.GetAudioObject(name); fadingOut = true; }
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; }
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; }
private void UpdatePitch(AudioObject _audioObject) { _audioObject.realPitch = Mathf.Clamp(_audioObject.targetPitch * m_parentPitch * _audioObject.setPitch, -3f, 3f); _audioObject.audioSource.pitch = _audioObject.realPitch; }
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); } }
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); } }
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(); }