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;
}
}
}