示例#1
0
 public static void PlayOneshotJingle(AudioClip clip, int se_id, DisableNotifyMonoBehaviour master = null, Transform parent = null)
 {
     if (MonoBehaviourSingleton <SoundManager> .IsValid())
     {
         MonoBehaviourSingleton <SoundManager> .I.audioControlJingle.CreateAudio(clip, se_id, MonoBehaviourSingleton <SoundManager> .I.volumeSE, false, MonoBehaviourSingleton <SoundManager> .I.mixerGroupJingle, false, master, parent, null);
     }
 }
示例#2
0
 public static void PlayOneShotSE(int se_id, DisableNotifyMonoBehaviour master = null, Transform parent = null)
 {
     if (MonoBehaviourSingleton <SoundManager> .IsValid())
     {
         MonoBehaviourSingleton <SoundManager> .I.audioControlSESelf.CreateAudio(GetSEAudioClip(se_id), se_id, MonoBehaviourSingleton <SoundManager> .I.volumeSE, false, MonoBehaviourSingleton <SoundManager> .I.mixerGroupSE, true, master, parent, null);
     }
 }
示例#3
0
 public static void PlayLoopSE(int se_id, DisableNotifyMonoBehaviour master, Transform parent = null)
 {
     if (MonoBehaviourSingleton <SoundManager> .IsValid())
     {
         bool is3DSound = (!(parent == null)) ? true : false;
         MonoBehaviourSingleton <SoundManager> .I.audioControlSESelf.CreateAudio(GetSEAudioClip(se_id), se_id, MonoBehaviourSingleton <SoundManager> .I.volumeSE, true, MonoBehaviourSingleton <SoundManager> .I.mixerGroupSE, is3DSound, master, parent, null);
     }
 }
示例#4
0
 public virtual void SetNotifyMaster(DisableNotifyMonoBehaviour master)
 {
     ResetNotifyMaster();
     notifyMaster = master;
     if (master.notifyServants == null)
     {
         master.notifyServants = new List <DisableNotifyMonoBehaviour>();
     }
     master.notifyServants.Add(this);
     master.OnAttachServant(this);
 }
示例#5
0
 protected override void OnAttachServant(DisableNotifyMonoBehaviour servant)
 {
     base.OnAttachServant(servant);
     if (servant is StageObject)
     {
         StageObject stageObject = servant as StageObject;
         objectList.Add(stageObject);
         if (stageObject is Character)
         {
             characterList.Add(stageObject);
             if (stageObject is Player)
             {
                 playerList.Add(stageObject);
                 if (stageObject is NonPlayer)
                 {
                     nonplayerList.Add(stageObject);
                 }
                 if (stageObject is Self && self == null)
                 {
                     self = (stageObject as Self);
                 }
             }
             else if (stageObject is Enemy)
             {
                 Enemy enemy = stageObject as Enemy;
                 enemyList.Add(stageObject);
                 EnemyList.Add(enemy);
                 if (boss == null && enemy.isBoss)
                 {
                     boss = enemy;
                 }
             }
         }
         if (stageObject is GimmickObject)
         {
             gimmickList.Add(stageObject);
         }
         if (stageObject is DecoyBulletObject)
         {
             decoyList.Add(stageObject);
         }
         if (stageObject is FieldWaveTargetObject)
         {
             waveTargetList.Add(stageObject);
         }
     }
 }
示例#6
0
 public static void LoopOff(int se_id, DisableNotifyMonoBehaviour master)
 {
     if (MonoBehaviourSingleton <SoundManager> .IsValid() && master.notifyServants != null)
     {
         List <DisableNotifyMonoBehaviour> .Enumerator enumerator = master.notifyServants.GetEnumerator();
         AudioObject audioObject;
         do
         {
             if (!enumerator.MoveNext())
             {
                 return;
             }
             audioObject = (enumerator.Current as AudioObject);
         }while (!(audioObject != null) || audioObject.clipId != se_id || !audioObject.GetLoopFlag());
         audioObject.SetLoopFlag(false);
     }
 }
示例#7
0
 protected virtual void OnDetachServant(DisableNotifyMonoBehaviour servant)
 {
 }
示例#8
0
 protected override void OnDetachServant(DisableNotifyMonoBehaviour servant)
 {
     base.OnDetachServant(servant);
     if (servant is StageObject)
     {
         StageObject stageObject = servant as StageObject;
         objectList.Remove(stageObject);
         if (stageObject is Character)
         {
             characterList.Remove(stageObject);
             if (stageObject is Player)
             {
                 playerList.Remove(stageObject);
                 if (stageObject is NonPlayer)
                 {
                     nonplayerList.Remove(stageObject);
                 }
                 if (self == stageObject as Self)
                 {
                     self = null;
                 }
             }
             else if (stageObject is Enemy)
             {
                 Enemy item = stageObject as Enemy;
                 enemyList.Remove(stageObject);
                 EnemyList.Remove(item);
                 if (boss == stageObject as Enemy)
                 {
                     boss = null;
                 }
             }
         }
         if (stageObject is DecoyBulletObject)
         {
             decoyList.Remove(stageObject);
         }
         if (stageObject is FieldWaveTargetObject)
         {
             waveTargetList.Remove(stageObject);
         }
         if (base.notifyServants != null)
         {
             int i = 0;
             for (int count = base.notifyServants.Count; i < count; i++)
             {
                 ((StageObject)base.notifyServants[i]).OnDetachedObject(stageObject);
             }
         }
         if (notifyInterfaces != null)
         {
             int j = 0;
             for (int count2 = notifyInterfaces.Count; j < count2; j++)
             {
                 notifyInterfaces[j].OnDetachedObject(stageObject);
             }
         }
         if (MonoBehaviourSingleton <TargetMarkerManager> .IsValid())
         {
             MonoBehaviourSingleton <TargetMarkerManager> .I.OnDetachedObject(stageObject);
         }
         if (MonoBehaviourSingleton <SoundManager> .IsValid())
         {
             MonoBehaviourSingleton <SoundManager> .I.OnDetachedObject(stageObject);
         }
     }
 }
示例#9
0
    public AudioObject CreateAudio(AudioClip clip, int clip_id, float volume, bool loop, AudioMixerGroup mixer_group, bool is3DSound = false, DisableNotifyMonoBehaviour master = null, Transform _parent = null, Vector3?initPos = default(Vector3?))
    {
        if (clip == null)
        {
            return(null);
        }
        PreparePlayingList(clip_id);
        if (!CanPlay(clip_id))
        {
            return(null);
        }
        PrepareKeyOn(clip_id);
        Transform parent = (!(_parent == null)) ? ((object)_parent) : ((object)base._transform);

        return(m_lastAudio = AudioObject.Create(clip, clip_id, volume, loop, mixer_group, this, is3DSound, master, parent, initPos));
    }
示例#10
0
    public static AudioObject Create(AudioClip clip, int clip_id, float volume, bool loop, AudioMixerGroup mixer_group, AudioControlGroup controlGroup, bool is3DSound = false, DisableNotifyMonoBehaviour master = null, Transform parent = null, Vector3?initPos = default(Vector3?))
    {
        //IL_0065: Unknown result type (might be due to invalid IL or missing references)
        //IL_006f: Unknown result type (might be due to invalid IL or missing references)
        if (clip == null)
        {
            return(null);
        }
        AudioObject audioObject = AudioObjectPool.Borrow();

        if (!(audioObject == null))
        {
            goto IL_0020;
        }
        goto IL_0020;
IL_0020:
        audioObject._transform.set_parent(MonoBehaviourSingleton <SoundManager> .I._transform);
        audioObject.m_masterGroup    = controlGroup;
        audioObject.m_IsSpatialSound = is3DSound;
        if (initPos.HasValue)
        {
            audioObject._transform.set_position((!initPos.HasValue) ? Vector3.get_zero() : initPos.Value);
            audioObject.m_IsStaticPosition = true;
        }
        audioObject.Play(clip, clip_id, volume, loop, mixer_group, master, parent);
        return(audioObject);
    }
示例#11
0
    private void Play(AudioClip clip, int clip_id, float volume, bool loop, AudioMixerGroup mixer_group, DisableNotifyMonoBehaviour master, Transform parent)
    {
        //IL_00b9: Unknown result type (might be due to invalid IL or missing references)
        if (master != null)
        {
            SetNotifyMaster(master);
        }
        else
        {
            ResetNotifyMaster();
        }
        clipId    = clip_id;
        PlayPhase = Phase.PREPLAY;
        if (audioSource != null)
        {
            audioSource.set_outputAudioMixerGroup(mixer_group);
            if (m_IsSpatialSound)
            {
                audioSource.set_spatialBlend(1f);
                audioSource.set_spread(360f);
            }
            else
            {
                audioSource.set_spatialBlend(0f);
                audioSource.set_spread(0f);
            }
            audioSource.set_priority(100);
            audioSource.set_rolloffMode(MonoBehaviourSingleton <SoundManager> .I.CurrentPreset.rollOffMode);
            audioSource.set_minDistance(MonoBehaviourSingleton <SoundManager> .I.CurrentPreset.minDistance);
            audioSource.set_maxDistance(MonoBehaviourSingleton <SoundManager> .I.CurrentPreset.maxDistance);
            audioSource.set_pitch(1f);
        }
        float num          = 1f;
        float dopplerLevel = 0f;

        SETable.Data seData = Singleton <SETable> .I.GetSeData((uint)clip_id);

        if (seData != null)
        {
            audioSource.set_priority((int)seData.priority);
            num          = seData.volumeScale;
            dopplerLevel = seData.dopplerLevel;
            if (seData.minDistance > 0f)
            {
                audioSource.set_minDistance(seData.minDistance);
            }
            if (seData.maxDistance > 0f)
            {
                audioSource.set_maxDistance(seData.maxDistance);
            }
            if (seData.randomPitch > 0f)
            {
                audioSource.set_pitch(GenRandomPitch());
            }
        }
        audioSource.set_dopplerLevel(dopplerLevel);
        audioSource.set_clip(clip);
        audioSource.set_loop(loop);
        audioSource.set_volume(volume * num);
        parentObject  = parent;
        needParent    = (parent != null);
        fadeoutVolume = 0f;
        TraceParent();
        audioSource.Play();
        if (m_masterGroup != null)
        {
            m_masterGroup.NotifyOnStart(this);
        }
        PlayPhase  = Phase.PLAYING;
        timeAtPlay = Time.get_time();
    }
示例#12
0
    public static void PlayVoice(AudioClip audio_clip, int voice_id, float volume = 1f, uint ch_id = 0, DisableNotifyMonoBehaviour master = null, Transform parent = null)
    {
        if (GameSaveData.instance.voiceOption != 2 && MonoBehaviourSingleton <SoundManager> .IsValid() && !(audio_clip == null))
        {
            float num = volume * MonoBehaviourSingleton <SoundManager> .I.volumeVOICE;
            if (!(num < 0.05f))
            {
                bool is3DSound = (!(parent == null)) ? true : false;
                AudioControlGroup audioControlVoice = MonoBehaviourSingleton <SoundManager> .I.GetAudioControlVoice(ch_id);

                if (!(audioControlVoice == null))
                {
                    audioControlVoice.CreateAudio(audio_clip, voice_id, num, false, MonoBehaviourSingleton <SoundManager> .I.mixerGroupVoice, is3DSound, master, parent, null);
                }
            }
        }
    }
示例#13
0
    public static void PlayActionVoice(int voice_id, float volume = 1f, uint ch_id = 0, DisableNotifyMonoBehaviour master = null, Transform parent = null)
    {
        AudioClip actionVoiceAudioClip = GetActionVoiceAudioClip(voice_id);

        PlayVoice(actionVoiceAudioClip, voice_id, volume, ch_id, master, parent);
    }