- Home /
Question by
Ruchaice · Jan 25 at 07:43 AM ·
scripting problemsoundsound effects
I got a "Can't play a disabled audio source" error although the audio source isn't disabled.
I'm trying make the enemy prefabs in my game play a sound when they die. But the problem is they won't make a death sound when they're dead and I got the "Can't play a disabled audio source" error although the audio source of my enemy prefabs isn't disabled actually. Does anyone know how to fix this? Here is my code so far. public class enemy : MonoBehaviour { public Transform Player; public float Health = 1.0f; public float Score = 1.0f; public int MoveSpeed = 4; int MinDist = 5; public bool SplitOnDeath = false; public GameObject SplittedEnemy; public Vector3 splitVel1; public Vector3 splitVel2; public AudioClip damagedSound; public AudioClip deathSound; private AudioSource enemyAudio; public ParticleSystem explosionParticle;
// Start is called before the first frame update
void Start()
{
Player = GameObject.FindWithTag("Player").transform;
enemyAudio = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
transform.LookAt(Player);
if (Vector3.Distance(transform.position, Player.position) >= MinDist)
{
transform.position += transform.forward * MoveSpeed * Time.deltaTime;
}
}
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "bullet")
{
Health = Health - 1;
}
if (Health <= 0.0f)
{
Die();
}
}
void Die()
{
GameObject go = Instantiate(explosionParticle.gameObject, transform.position, transform.rotation);
Destroy(go, 1.9f);
SplitEnemy();
scoreText.currentScore += Score;
enemyAudio.PlayOneShot(deathSound);
Destroy(gameObject);
}
void SplitEnemy()
{
if (SplitOnDeath == true)
{
GameObject smlSplit1 = Instantiate(SplittedEnemy, transform.position, transform.rotation);
GameObject smlSplit2 = Instantiate(SplittedEnemy, transform.position, transform.rotation);
smlSplit1.GetComponent<Rigidbody>().velocity = splitVel1;
smlSplit2.GetComponent<Rigidbody>().velocity = splitVel2;
}
}
}
Comment