Question by
$$anonymous$$ · May 07, 2020 at 02:29 PM ·
c#unity 52dgameobject
How do I to know on which GameObject I clicked?
I want to make a Memory Game. When the PC player clicks in a card, the game needs to call the function memory(GameObject card). My code is:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class memoria : MonoBehaviour
{
private int counterOverturnedCards = 0;
private GameObject[] overturnedCards = new GameObject[2];
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
void memory(GameObject card)
{
if (card.GetComponent<SpriteRenderer>().sprite == Resources.Load<Sprite>("Assets/Card/card.png"))
{
if (card == GameObject.Find("Cards/card10") || card == GameObject.Find("Cards/card20"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/krunk.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card03") || card == GameObject.Find("Cards/card21"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/nash.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card05") || card == GameObject.Find("Cards/card13"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/geary.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card04") || card == GameObject.Find("Cards/card24"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/mixvelo.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card06") || card == GameObject.Find("Cards/card18"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/small_norm.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card12") || card == GameObject.Find("Cards/card22"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/big_norm.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card01") || card == GameObject.Find("Cards/card14"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/emperor_velo_xxvii.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card08") || card == GameObject.Find("Cards/card17"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/real_velo.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card07") || card == GameObject.Find("Cards/card19"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/n_trance.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card09") || card == GameObject.Find("Cards/card15"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/zam.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card11") || card == GameObject.Find("Cards/card16"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/zem.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
else if (card == GameObject.Find("Cards/card02") || card == GameObject.Find("Cards/card23"))
{
card.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/nitros_oxide.png");
overturnedCards[counterOverturnedCards] = card;
counterOverturnedCards++;
}
}
if (overturnedCards[0] != overturnedCards[1])
{
StartCoroutine(waitTwoSeconds());
overturnedCards[0].GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/card.png");
overturnedCards[1].GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("Assets/Card/card.png");
}
if (counterOverturnedCards == 2) counterOverturnedCards = 0;
}
IEnumerator waitTwoSeconds()
{
yield return new WaitForSeconds(2);
}
}
Comment
Your answer
Follow this Question
Related Questions
How can I change GameObject's texture? 1 Answer
Having a couple of problems regarding 2D Movement. 1 Answer
Enemy death animation keeps looping (Unity 2D) 1 Answer
Select Object And Spawn it 1 Answer
GameObject overlapping on random spawn 0 Answers