Collecting objects?

I’m trying to create a game where the player collects five objects. I’ve added a script that destroys each object when you click on it. Is there a way for me to trigger fireworks or a sound or something once all five objects have been collected?
Thanks a lot. I’ve only just started using Unity and don’t know much about it.

You have to create some sort of counter. You will want to have it on a seperate script. Could be like this: (Code in C# but js works similar)


//inside monobehaviour

public int counter;	//The amount of items we already collected
public int maxItems;	//The number of all items in total
private bool won;

void Awake(){	//Awake will be called before Start.
	//Initialice the variables
	counter = 0;
	maxItems = 0;
	 won = false;
void Update(){
	if(won == false && counter = maxItems){	//Check if we collected all items
		won = true;	//this will prevent calling the win sequence multiple times.
		Winsequence();	//Put your firework/sound/etc code in this function;


On your item script you have to get a reference to your inventory script:


    //inside of monobehaviour again
    private Inventory _inventory; reference to the script from above
    void Start(){
    	//Find the reference to the script from above
    	//The script must be placed on a gameObject with the exact name: InventoryGameObject
    	//You have to make sure, that there is only one instance of this gameObject in your scene and it must not be destroyed.
    	//You can search UnityAnswers for singleton if this becomes a problem
    	_inventory = GameObject.Find("InventoryGameObject").GetComponent<Inventory>();
    	_inventory.maxItems ++; //Every pick up will increase the maxItems integer by one. At frame 1 maxItems will equal the actual number of items in the scene;

void OnMouseDown(){
	_inventory.counter ++;	//increase the counter by one
	Destroy(this.gameObject);	//You probalby got this already