- Home /
Question by
Viwo04 · May 08 at 08:29 PM ·
unity 2dsoundssound effects
I can't add a second soundtrack in unity
I can't add a second soundtrack in unity. When I put in the second soundtrack, it immediately pops up the restart button in the game and when I delete it, the error disappears . why is this happening? to my script:
using UnityEngine;
public class KnifeScript : MonoBehaviour
{
[SerializeField]
private Vector2 throwForce;
//knife shouldn't be controlled by the player when it's inactive
//(i.e. it already hit the log / another knife)
private bool isActive = true;
//for controlling physics
private Rigidbody2D rb;
//the collider attached to Knife
private BoxCollider2D knifeCollider;
private void Awake()
{
rb = GetComponent<Rigidbody2D>();
knifeCollider = GetComponent<BoxCollider2D>();
}
void Update()
{
//this method of detecting input also works for touch
if (Input.GetMouseButtonDown(0) && isActive)
{
//"throwing" the knife
rb.AddForce(throwForce, ForceMode2D.Impulse);
//once the knife isn't stationary, we can apply gravity (it will not automatically fall down)
rb.gravityScale = 1;
//Decrement number of available knives
GameController.Instance.GameUI.DecrementDisplayedKnifeCount();
}
}
public AudioClip impact;
public AudioClip impact2;
private void OnCollisionEnter2D(Collision2D collision)
{
//we don't even want to detect collisions when the knife isn't active
if (!isActive)
return;
//if the knife happens to be active (1st collision), deactivate it
isActive = false;
//collision with a log
if (collision.collider.tag == "Log")
{
//play the particle effect on collision,
//you don't always have to store the component in a field...
AudioSource.PlayClipAtPoint(impact, transform.position);
GetComponent<ParticleSystem>().Play();
//stop the knife
rb.velocity = new Vector2(0, 0);
//this will automatically inherit rotation of the new parent (log)
rb.bodyType = RigidbodyType2D.Kinematic;
transform.SetParent(collision.collider.transform);
//move the collider away from the blade which is stuck in the log
knifeCollider.offset = new Vector2(knifeCollider.offset.x, -0.4f);
knifeCollider.size = new Vector2(knifeCollider.size.x, 1.2f);
//Spawn another knife
GameController.Instance.OnSuccessfulKnifeHit();
}
//collision with another knife
else if (collision.collider.tag == "Knife")
AudioSource.PlayClipAtPoint(impact2, transform.position);
{
//start rapidly moving downwards
rb.velocity = new Vector2(rb.velocity.x, -2);
//Game Over
GameController.Instance.StartGameOverSequence(false);
}
}
}
mainly it's about:
AudioSource.PlayClipAtPoint(impact2, transform.position);
Comment
Your answer
Follow this Question
Related Questions
playclipatpoint set default 2d (default audio is 3d) 0 Answers
Problem with sound 0 Answers
Making Enemy Audio quieter 1 Answer
The problem is that when I copy an enemy mob, I lose the sounds of this enemy 1 Answer
3D sound is not working. 0 Answers