본문 바로가기
유니티

Day 4 - 게임 이펙트 추가(SetActive 활용), float -> int

by shin0707 2024. 4. 18.
728x90

  • 주제

>> 카드 매칭시, 게임 클리어시 게임 이펙트(파티클) 추가

>> float 을 int로 변경(소수점 버리기)


  • 구현과정

1. 게임 이펙트 추가(카드 매칭시)

 

1-1. 에셋스토어 이펙트를 유니티에 추가 

 

참고사이트

https://ugames.tistory.com/entry/%EC%8B%A4%EC%8A%B5%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%9C%A0%EB%8B%88%ED%8B%B0-%EA%B8%B0%EC%B4%88-%EC%97%90%EC%85%8B-%EC%8A%A4%ED%86%A0%EC%96%B4-Asset-Store-%EC%82%AC%EC%9A%A9

 

[유니티 기초] 에셋 스토어 (Asset Store) 사용

에셋 스토어는 유니티의 꽃이라 할 수 있습니다. 유니티 초창기 시절 유니티의 에셋 스토어 정책 덕분에 많은 사람들이 1인 개발을 실현할 수 있었습니다. 에셋 스토어는 애플의 앱스토어나 구

ugames.tistory.com

 

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

 

참고사이트

https://parksh3641.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-C-%EB%B0%98%EC%98%AC%EB%A6%BC-%EC%98%AC%EB%A6%BC-%EB%82%B4%EB%A6%BC-%EC%86%8C%EC%88%98%EC%A0%90-%EB%B2%84%EB%A6%AC%EA%B8%B0-%EA%B0%84%EB%8B%A8-%EA%B5%AC%ED%98%84

 

유니티 C# 반올림, 올림, 내림, 소수점 2자리 버리기 간단 구현

반올림 Roundfloat myFloat = 3.6f; int myInt = Mathf.RoundToInt(myFloat); Debug.Log(myInt); // 출력: 4 반올림 Ceilfloat myFloat = 3.2f; int myInt = Mathf.CeilToInt(myFloat); Debug.Log(myInt); // 출력: 4 내림 Floorfloat myFloat = 3.8f; int myInt

parksh3641.tistory.com

******

728x90
반응형