I want to make a Simple Memory Game using C# on Unity. It is a 2D game. I am trying to make a game in which the PC player clicks in a card, and then the game needs to call the function memory(GameObject card), but I don't know how to do and I can't seen to find it in the internet. How do I do that? My code is:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MemoryGame : MonoBehaviour
{
private int counterOverturnedCards;
private GameObject[] overturnedCards = new GameObject[2];
public Sprite back, krunk, nash, smallNorm, bigNorm, geary, emperorVeloXXVII, realVelo, nTrance, nitrosOxide, zam, zem, mixvelo;
// Start is called before the first frame update
void Start()
{
gameObject.GetComponent<SpriteRenderer>().sprite = back;
counterOverturnedCards = 0;
}
// Update is called once per frame
void Update()
{
}
void OnMouseDown()
{
if (gameObject.GetComponent<SpriteRenderer>().sprite == back && (counterOverturnedCards == 0 || counterOverturnedCards == 1))
{
if (gameObject == GameObject.Find("Cards/card10") || gameObject == GameObject.Find("Cards/card20"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = krunk;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card03") || gameObject == GameObject.Find("Cards/card21"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = nash;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card05") || gameObject == GameObject.Find("Cards/card13"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = geary;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card04") || gameObject == GameObject.Find("Cards/card24"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = mixvelo;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card06") || gameObject == GameObject.Find("Cards/card18"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = smallNorm;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card12") || gameObject == GameObject.Find("Cards/card22"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = bigNorm;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card01") || gameObject == GameObject.Find("Cards/card14"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = emperorVeloXXVII;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card08") || gameObject == GameObject.Find("Cards/card17"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = realVelo;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card07") || gameObject == GameObject.Find("Cards/card19"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = nTrance;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card09") || gameObject == GameObject.Find("Cards/card15"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = zam;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card11") || gameObject == GameObject.Find("Cards/card16"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = zem;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
else if (gameObject == GameObject.Find("Cards/card02") || gameObject == GameObject.Find("Cards/card23"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = nitrosOxide;
overturnedCards[counterOverturnedCards] = gameObject;
counterOverturnedCards++;
}
}
if (counterOverturnedCards == 2)
{
if (overturnedCards[0].GetComponent<SpriteRenderer>().sprite != overturnedCards[1].GetComponent<SpriteRenderer>().sprite)
{
StartCoroutine(waitTwoSeconds());
overturnedCards[0].GetComponent<SpriteRenderer>().sprite = back;
overturnedCards[1].GetComponent<SpriteRenderer>().sprite = back;
}
counterOverturnedCards = 0;
}
}
IEnumerator waitTwoSeconds()
{
yield return new WaitForSeconds(2);
}
}