Question by
Zariexa · May 08, 2017 at 03:13 PM ·
scorenumberscollectible-game-objects
Collecting specific number of specific items to win a game
Hello, I'm a beginner coder here, and I really don't know how to go about it sometimes... My game has 9 different collectibles that is displayed in an inventory panel, but for this scene, the player must collect only 6 "berry1" and 2 "egg1" in order to win this level. This is my pickup script for counting and displaying the collectibles; it is attached to the Player GameObject.
using UnityEngine; using UnityEngine.UI; using System.Collections;
public class pickup : MonoBehaviour {
public GameObject inventoryPanel;
public GameObject[] inventoryIcons;
public GameObject gameWinScreen;
void Start()
{
gameWinScreen.SetActive (false);
}
void OnCollisionEnter2D (Collision2D col)
{
//look through children for existing icon
foreach (Transform child in inventoryPanel.transform)
{
//if item is already in inventory
if (child.gameObject.tag == col.gameObject.tag)
{
string c = child.Find ("Text").GetComponent<Text> ().text;
int tcount = System.Int32.Parse (c) + 1;
child.Find ("Text").GetComponent<Text> ().text = "" + tcount;
return;
}
}
GameObject i;
if (col.gameObject.tag == "berry1")
{
i = Instantiate (inventoryIcons [0]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "berry2")
{
i = Instantiate (inventoryIcons [1]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "berry3")
{
i = Instantiate (inventoryIcons [2]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "egg1")
{
i = Instantiate (inventoryIcons [3]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "egg2")
{
i = Instantiate (inventoryIcons [4]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "herb1")
{
i = Instantiate (inventoryIcons [5]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "herb2")
{
i = Instantiate (inventoryIcons [6]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "herb3")
{
i = Instantiate (inventoryIcons [7]);
i.transform.SetParent (inventoryPanel.transform);
}
else if (col.gameObject.tag == "herb4")
{
i = Instantiate (inventoryIcons [8]);
i.transform.SetParent (inventoryPanel.transform);
}
}
void Update ()
{
//if (??)
{
gameWinScreen.SetActive (true);
Time.timeScale = 0f;
}
}
}
How could I make it so when the count for berry1 and egg1 reaches 6 and 2 respectively, the gameWinScreen would be activated? I've been stuck on this for days... If anyone could help me with this, I couldn't be more grateful.
Comment