コード例 #1
0
    public int Play(AudioClip clip, AudioGroup audioGroup, float fadeInTime = 0, float volume = 1, float pitch = 1, bool loop = false, string tag = "")
    {
        if (_isSFXMute)
        {
            return(-1);
        }

        var sfxList = _sfxsDictionary[audioGroup];

        if (sfxList.Count < _sfxsLimit[audioGroup])
        {
            AudioSFX sfx = Instantiate <AudioSFX>(_audioSFXPrefab, Vector3.zero, Quaternion.identity, _sfxPoolTransform);
            sfx.Setup(clip.name, tag);
            sfxList.Insert(0, sfx);

            Play(sfx.AudioSource, clip, audioGroup, fadeInTime, volume, pitch, loop, tag);

            return(sfx.ID);
        }
        else
        {
            for (int i = (sfxList.Count - 1); i >= 0; --i)
            {
                if (!sfxList[i].IsActiveAndPlaying)
                {
                    sfxList[i].Setup(clip.name, tag);
                    Play(sfxList[i].AudioSource, clip, audioGroup, fadeInTime, volume, pitch, loop, tag);

                    return(sfxList[i].ID);
                }
            }

            return(-1);
        }
    }
コード例 #2
0
    public void PlaySFX(AudioSFX sfx, float volume = 1f)
    {
        AudioClip clipToPlay = null;

        switch (sfx)
        {
        case AudioSFX.Jump:
            clipToPlay = jump;
            break;

        case AudioSFX.Splat:
            clipToPlay = splat;
            break;

        case AudioSFX.Click:
            clipToPlay = click;
            break;

        case AudioSFX.Hover:
            clipToPlay = hover;
            break;

        case AudioSFX.Score:
            clipToPlay = score;
            break;

        case AudioSFX.HighScore:
            clipToPlay = highScore;
            break;

        case AudioSFX.Bomb:
            clipToPlay = bomb;
            break;

        case AudioSFX.GameOver:
            clipToPlay = gameover;
            break;

        case AudioSFX.Land:
            clipToPlay = landings[Random.Range(0, landings.Length)];
            break;

        case AudioSFX.Hit:
            clipToPlay = hits[Random.Range(0, hits.Length)];
            break;

        case AudioSFX.Explode:
            clipToPlay = explosions[Random.Range(0, explosions.Length)];
            break;
        }

        audioSource.volume = volume;
        audioSource.PlayOneShot(clipToPlay);
    }
コード例 #3
0
    public void PlaySFX(AudioSFX sfx)
    {
        AudioClip clipToPlay = null;

        switch (sfx)
        {
        case AudioSFX.Boing:
            clipToPlay = boing;
            break;

        case AudioSFX.Slam:
            clipToPlay = slam;
            break;

        case AudioSFX.SwipeIn:
            clipToPlay = swipeIn;
            break;

        case AudioSFX.SwipeOut:
            clipToPlay = swipeOut;
            break;

        case AudioSFX.Pop:
            clipToPlay = pop;
            break;

        case AudioSFX.Error:
            clipToPlay = error;
            break;

        case AudioSFX.Explosion:
            clipToPlay = explosion;
            break;

        case AudioSFX.Gunshot:
            clipToPlay = gunshot;
            break;

        case AudioSFX.GongSmall:
            clipToPlay = gongSmall;
            break;

        case AudioSFX.GongBig:
            clipToPlay = gongBig;
            break;

        case AudioSFX.Tick:
            clipToPlay = tick;
            break;
        }

        audioSource.PlayOneShot(clipToPlay);
    }
コード例 #4
0
    public static string GetClipForEnum(AudioSFX sfx)
    {
        switch (sfx)
        {
        case AudioSFX.ButtonTapStart:
        case AudioSFX.ButtonTapEnd:
            return("click");

        case AudioSFX.PieceTapStart:
        case AudioSFX.PieceTapEnd:
            return("click_high");
        }

        return(string.Empty);
    }
コード例 #5
0
    public float this[AudioSFX sfx]
    {
        get
        {
            switch (sfx)
            {
            case AudioSFX.ButtonTapStart: return(buttonTapStart);

            case AudioSFX.ButtonTapEnd: return(buttonTapEnd);

            case AudioSFX.PieceTapStart: return(pieceTapStart);

            case AudioSFX.PieceTapEnd: return(pieceTapEnd);

            default:
                return(0f);
            }
        }
    }
コード例 #6
0
 protected override void process(List <Entity> entities)
 {
     foreach (Entity A in entities)
     {
         AudioSFX myObject = A.getComponent <AudioSFX>();
         if (!mySounds.ContainsKey(myObject.SoundString))
         {
             if (myObject.isDistanceDependent)
             {
                 if (myObject.SoundEffectDistance < Vector2.Distance(PlayerTransform.position, A.position))
                 {
                     mySounds.Add(myObject.SoundString, Nez.Core.content.Load <SoundEffect>(myObject.SoundString));
                 }
             }
             else
             {
                 mySounds.Add(myObject.SoundString, Nez.Core.content.Load <SoundEffect>(myObject.SoundString));
             }
         }
     }
     base.process(entities);
 }
コード例 #7
0
 private void PlaySFX(AudioSFX sfx)
 {
     AudioManager.Instance.Play(sfx);
 }
コード例 #8
0
 public void Play(AudioSFX sfx)
 {
     Play(GetClipForEnum(sfx), volumes[sfx]);
 }