728x90
- 주제
>> 카드 매칭시, 게임 클리어시 게임 이펙트(파티클) 추가
>> float 을 int로 변경(소수점 버리기)
- 구현과정
1. 게임 이펙트 추가(카드 매칭시)
1-1. 에셋스토어 이펙트를 유니티에 추가
참고사이트
1-2. 카드 매칭 성공시, 각각의 카드 위에 이펙트 나타내기
MainScene에 게임오브젝트 2개 생성 -> 다운받은 파티클 프리팹을 각각의 오브젝트 밑에 자식으로 넣음
-> 각각의 오브젝트는 비활성화
(특정 조건에서 게임 오브젝트를 켜줌으로써 밑에 속해있는 이펙트도 나타나게 하는 방법)
1-3. GameManager.cs 에 코드 추가(매칭되었을 때, 이펙트가 담겨있는 게임오브젝트들을 활성화)
public GameObject firstTracker; // 매칭된 카드 중 첫번째 카드 위에 생성될 이펙트
public GameObject secondTracker; //두번째 카드 위에 생성될 이펙트
public void Matched()
{
if (firstCard.idx == secondCard.idx)
{
firstTracker.SetActive(true);
secondTracker.SetActive(true);
}
}
1-4. 첫번째 카드가 오픈되었을 때,
GameManager.cs에서 첫번째 카드 위치를 받아서 firstPos 좌표변수에 넣기,
첫번째 이펙트 위치를 firstPos 좌표로 이동,
첫번째 이펙티와 두번째 이펙트 오브젝트를 비활성화하는 코드를 추가.
두번째 카드가 오픈되었을 때,
GameManager.cs에서 두번째 카드 위치를 받아서 secondPos 좌표변수에 넣기,
두번째 이펙트 위치를 second Pos 좌표로 이동.
Card.cs
if (GameManager.instance.firstCard == null)
{
GameManager.instance.firstCard = this;
Vector2 firstPos = GameManager.instance.firstCard.transform.position;
GameManager.instance.firstTracker.transform.position = firstPos;
GameManager.instance.firstTracker.SetActive(false);
GameManager.instance.secondTracker.SetActive(false);
else
{
GameManager.instance.secondCard = this;
Vector2 secondPos = GameManager.instance.secondCard.transform.position;
GameManager.instance.secondTracker.transform.position = secondPos;
GameManager.instance.Matched();
}
}
2. 게임 이펙트 추가(게임 클리어시)
MainScene에 게임 클리어시 나타나는 Point 텍스트 UI에 ClearEffect추가.
- 알고가기
>>float 을 int로 변경(소수점 버리기)
float time = 50.0f;
int timeInt = Mathf.FloorToInt(time); //timeInt 출력: 50
참고사이트
******
728x90
반응형
'유니티' 카테고리의 다른 글
Day 6 - 게임 이펙트 코드 수정(위치 이동) (0) | 2024.04.20 |
---|---|
Day 5 - 부정 방지 기능(Invoke & null 활용) 및 발표 피드백 정리 (2) | 2024.04.19 |
Day 3 - 카드 색상 3단계로 변경(매개변수&리스트 활용) (0) | 2024.04.17 |
Day 2 - 카운트다운(Coroutine & bool 활용), C# 표기형식 (0) | 2024.04.16 |
Day 1 - Git & VSC 연동 (0) | 2024.04.15 |