Пример #1
0
 private void ChangedToTopViewHandler(object sender, bool goingToTop)
 {
     if (goingToTop)
     {
         _mainInstance.FadeTo(_mainInstance.source.volume / 2f, 1.5f);
         _windInstance.FadeIn(2f);
     }
     else
     {
         _mainInstance.FadeIn(2f);
         _windInstance.FadeOut(1.5f);
     }
 }
Пример #2
0
 private void Start()
 {
     _mainInstance      = Instantiate(mainAmbienceObj, transform);
     _graveyardInstance = Instantiate(graveyardObj, transform);
     _graveyardInstance.source.volume = 0;
     _windInstance = Instantiate(windObj, transform);
     _windInstance.source.volume = 0;
     _mainInstance.FadeIn(0.5f);
 }
Пример #3
0
    private void HumanKilledHandler(object sender, EventArgs e)
    {
        if (MapData.HumanList.Count <= 10 && _endInstance != null)
        {
            _mainInstance.FadeOut(2.5f);

            _endInstance = Instantiate(endAmbienceObj, transform);
            _endInstance.FadeIn(2f);
        }
    }
Пример #4
0
 private void DrawInspector()
 {
     Ao = (AudioObject)target;
     BeginInspectorGUI();
     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 ((bool)Ao.PrimaryAudioSource)
     {
         ShowString(string.Format("{0:0.00} half-tones", AudioObject.InverseTransformPitch(Ao.PrimaryAudioSource.pitch)), "Pitch:");
         if ((bool)Ao.PrimaryAudioSource.clip)
         {
             ShowString(string.Format("{0} / {1}", Ao.PrimaryAudioSource.time, Ao.ClipLength), "Time:");
         }
         if (Ao.ScheduledPlayingAtDspTime > 0.0)
         {
             ShowFloat((float)(Ao.ScheduledPlayingAtDspTime - AudioSettings.dspTime), "Scheduled Play In seconds: ");
         }
     }
     if ((bool)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(2f);
     }
     if (GUILayout.Button("FadeOut"))
     {
         Ao.FadeOut(2f);
     }
     GUILayout.Button("Refresh");
     EditorGUILayout.EndHorizontal();
     EndInspectorGUI();
 }
Пример #5
0
 private void ChangedToGraveyardHandler(object sender, bool goingToGrave)
 {
     if (goingToGrave)
     {
         _mainInstance.FadeOut(2f);
         _graveyardInstance.FadeIn(2.5f);
     }
     else
     {
         _mainInstance.FadeIn(2.5f);
         _graveyardInstance.FadeOut(2f);
     }
 }
Пример #6
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();
    }
Пример #7
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);
    }
    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();
    }