Problem laika z menadżerem audio

Programowanie w Unity.

Problem laika z menadżerem audio

Postprzez batyskaf » 18 Kwi 2022, 21:04

witam. Jak zmodyfikować ten skrypt, by dźwięk nie powielał się? W tej chwili jest efekt narastającego - pokrywającego się dźwięku. Np. w przypadku wykrycia lub ataku dźwięk npc narasta. Co zrobić by dla każdego "AudioClipa" dać warunek, że dźwięk nie odtwarza się, jeśli jest już odtwarzany? Proszę pisać jak do laika, bo nim jestem.

Kod: Zaznacz wszystko

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SoundManagerScript : MonoBehaviour
{
    public static AudioClip playerJumpSound, playerEatSound, playerSmashSound, frogJumpSound, impAttackSound, monsterSound, porkAttackSound, porkExplodingSound, insectAttackSound, InsectSpitSound;
    static AudioSource audioSrc;
    public GameObject[] soundmanager;


    void Start()
    {
        DontDestroyOnLoad(gameObject);
        playerJumpSound = Resources.Load<AudioClip>("playerJump");
        playerEatSound = Resources.Load<AudioClip>("playerEat");
        playerSmashSound = Resources.Load<AudioClip>("playerSmash");
        frogJumpSound = Resources.Load<AudioClip>("frogJump");
        impAttackSound = Resources.Load<AudioClip>("impAttack");
        monsterSound = Resources.Load<AudioClip>("monsterSound");
        porkAttackSound = Resources.Load<AudioClip>("porkAttackSound");
        porkExplodingSound = Resources.Load<AudioClip>("porkExplodingSound");
        insectAttackSound = Resources.Load<AudioClip>("insectAttackSound");
        InsectSpitSound = Resources.Load<AudioClip>("InsectSpitSound");





        audioSrc = GetComponent<AudioSource>();
    }

    private void OnLevelWasLoaded(int level)
    {
        soundmanager = GameObject.FindGameObjectsWithTag("SoundManager");

        if (soundmanager.Length > 1)
        {
            Destroy(soundmanager[1]);
        }
    }

    public static void PlaySound (string clip)
    {
        switch (clip)
        {       
            case "playerJump":
                audioSrc.PlayOneShot(playerJumpSound);
                break;
            case "playerEat":
                audioSrc.PlayOneShot(playerEatSound);
                break;
            case "playerSmash":
                audioSrc.PlayOneShot(playerSmashSound);
                break;
            case "frogJump":
                audioSrc.PlayOneShot(frogJumpSound);
                break;
            case "impAttack":
                audioSrc.PlayOneShot(impAttackSound);
                break;
            case "monsterSound":
                audioSrc.PlayOneShot(monsterSound);
                break;
            case "insectAttackSound":
                audioSrc.PlayOneShot(insectAttackSound);
                break;
            case "InsectSpitSound":
                audioSrc.PlayOneShot(InsectSpitSound);
                break;
            case "porkAttackSound":
                audioSrc.PlayOneShot(porkAttackSound);
                break;
            case "porkExplodingSound":
                audioSrc.PlayOneShot(porkExplodingSound);
                break;
        }
    }
}

batyskaf
 
Posty: 9
Rejestracja: 07 Lut 2021, 14:51
Has thanked: 0 time
Been thanked: 0 time

Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 9 gości

cron