コード例 #1
0
    public AudioClip GetClip(SFX clipName)
    {
        SFXScriptableObject sfxSO = soundEffects.Find(x => x.name == clipName).sfxSO;
        var sfxClipArraySize      = sfxSO.audioClips.Length;

        if (sfxClipArraySize == 0)
        {
            Debug.LogError("Please add audio clip(s) to " + sfxSO.name + " scriptable object.");
            return(null);
        }

        return(sfxSO.audioClips[Random.Range(0, sfxClipArraySize)]);
    }
コード例 #2
0
    // Returns length of random clip just played
    private float PlayRandomClip(SFXScriptableObject sfxSO, Vector3 pos)
    {
        asc = GetController();
        var audioClipArraySize = sfxSO.audioClips.Length;

        if (audioClipArraySize == 0)
        {
            Debug.LogError("Please set audio clip(s) on " + sfxSO.name + " scriptable object.");
            return(0);
        }

        AudioClip clip = sfxSO.audioClips[Random.Range(0, audioClipArraySize)];

        if (asc != null)
        {
            asc.SetPosition(pos);
            asc.SetSourceProperties(clip, sfxSO.volume, sfxSO.pitch, sfxSO.loop);
            asc.Play();
        }
        return(clip.length);
    }