
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
안녕하세요. 강의 잘보고 있습니다.
현재 4-6 카드(3)_뒤집기,매칭하기 강의를 보는 도중 의문이 생겨 질문드립니다.
public void checkMatched()
{
string firstCardImage = firstCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite.name;
string secondCardImage = secondCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite.name;
if (firstCardImage == secondCardImage)
{
firstCard.GetComponent<card>().destroyCard();
secondCard.GetComponent<card>().destroyCard();
}
else
{
firstCard.GetComponent<card>().closeCard();
secondCard.GetComponent<card>().closeCard();
}
firstCard = null;
secondCard = null;
}
현재 가르쳐주신 스크립트는 위와 같습니다.
그 중 두 장의 카드가 같으면 파괴시키는 destoryCard()함수를 굳이 Card에 있는 스크립트에서 불러오고 그 destroyCard() 함수는 Invoke()를 이용하여 1초 뒤에 destroyCardInvoke()함수를 부르고 있습니다.
(즉 현재는 card스크립트->destroyCard()->destroyCardInvoke() 의 3단계를 거치고 있습니다.)
if (firstCardImage == secondCardImage)
{
firstCard.GetComponent<card>().destroyCard(); //1단계
secondCard.GetComponent<card>().destroyCard();
}
public void destroyCard() //2단계
{
Invoke("destroyCardInvoke", 1.0f);
}
void destroyCardInvoke() //3단계
{
Destroy(gameObject);
}
그냥 아래와 같이 만들면 똑같이 함수가 작동하는 것 같은데 3단계를 거친 이유가 있을까요?
그냥 GetComponent<>함수를 설명하기 위함인지, 안정성을 높이고 에러를 없애준다던가 다른 이유가 있을까요?
if (firstCardImage==secondCardImage)
{
Destroy(firstCard,1.0f);
Destroy(secondCard,1.0f);
}
