프로젝트/[Sparta] 유니티로 만드는 게임개발 종합반

[5주차 기능 학습] 광고 붙이기, 무료 에셋 구경하기

순정법사 2023.01.12

E. 광고 붙이기

1. 준비하기

빌드를 안해두면 광고를 붙일 수 없으니 참고하기

 

 

2. Unity Ads란?

💡 Unity 자체적으로 광고를 붙일 수 있고, 광고비를 정산해주는 시스템

 

 google ads등이 있지만 Unity Ads가 좀 더 편리하게 사용할 수 있음!

 

 

3. Unity 에디터 내에서 Unity Ads 추가하기

a. Windows → General → Services 탭을 클릭하여 Service 메뉴 클릭

만약 클릭했는데 아무것도 안뜬다면

 

 

여기 UI Toolkit Live Reload를 클릭하면 정상적으로 나옴

 

b. General Settings 클릭

 

클릭하면 Service General Settings 가 뜬다

 

1) organizations 드롭다운 해서 선택 → Create Project ID 클릭

 

 

2) 그 후 세팅창이 활성화 되었으면 13세 이하 타겟 광고 NO

 

 

3) 설정이 완료되었다면 왼쪽 Ads 클릭하기 

 

 

c. Ads의 OFF 클릭해서 ON으로 만들기

활성화가 된 상태

 

1) Ads Package 클릭 → Install Lastest Version X

 

2) Open Package Manager

 

유니티 2021 최신 버전은 안정성을 문제로 이전 버전의 패키지 다운로드가 막혀있음

 

(a) + 버튼을 눌러 Add package by name 으로 추가

 

(b) package name에 com.unity.ads, version에 3.7.5를 입력해 이전 버전을 추가

 

 

(c)  Add 를 누르면 다운로드가 되고 아래처럼 된다면 완료

 

이렇게 되면 완료!

 

[추가 설치를 진행하는 이유]

유니티 업데이트로 기본 Advertisement 설치시 4.4.1 버전이 설치되는데
이 버전으로 설치하시고 진행하시면 Advertisement 4.3.0 버전은 이전과 달라져서 IsReady 함수가 없어 오류가 발생하니
강의 영상과 동일한 3.7.5 버전의 패키지 설치를 위해 패키지 매니저를 사용함

 

(d) Test mode 체크하기

 

 

다 했다면 종료하기

 

 

4. 게임 끝나면 붙이기

a. adsManager 준비하기

1) createEmpty 로 adsManager 생성하고 Script도 생성해줌 (연결까지!)

 

 

b. adsManager.cs 작성하기

 

1) 아래 코드를 맨 위에 먼저 추가하고

 

using UnityEngine.Advertisements;

 

2) 아래 코드를 작성해줌

 

public static adsManager I;

string adType;
string gameId;
void Awake()
{
    I = this;

    if (Application.platform == RuntimePlatform.IPhonePlayer)
    {
        adType = "Rewarded_iOS";
        gameId = "iOS 아이디";
    }
    else
    {
        adType = "Rewarded_Android";
        gameId = "Android 아이디";
    }

    Advertisement.Initialize(gameId, true);
}

public void ShowRewardAd()
{
    if (Advertisement.IsReady())
    {
        ShowOptions options = new ShowOptions { resultCallback = ResultAds };
        Advertisement.Show(adType, options);
    }
}

void ResultAds(ShowResult result)
{
    switch (result)
    {
        case ShowResult.Failed:
            Debug.LogError("광고 보기에 실패했습니다.");
            break;
        case ShowResult.Skipped:
            Debug.Log("광고를 스킵했습니다.");
            break;
        case ShowResult.Finished:
            // 광고 보기 보상 기능 
            Debug.Log("광고 보기를 완료했습니다.");
            break;
    }
}

 

3) Start() 와 Update() 는 지우기

 

4) Window → General → Services → Ads 클릭 → Game Id

 

iOS 아이디, Android 아이디 부분에 내 아이디 (숫자)를 적기

 

 

c. 광고 활성화 시켜주기

1) Dashboard를 누르고 로그인

 

 

2) Monetizatoin 클릭

 

아래 1), 2), 3) 진행

 

3) I only plan to use Unity Ads 클릭후 OK

 

 

4) ++ 강의내용이 안나와서 I plan to use Mediation을 클릭했는데

 

위에 4)에서 한 내 아이디와 동일한 숫자가 나왓당 (강의 내용에서는 다른 숫자가 나옴)

 

나왔다 뭐지..

 

일단 이 숫자를 동일하지만, 다시 코드에 넣고 진행했다

 

b. 끝! 텍스트를 눌렀을 때 광고 뜨게 하기

1) gameManager.cs 에서 30초 → 3초에 끝나게 하기

 

빠르게 결과를 확인하기 위해 수정

 

if (time > 3.0f)
{
    GameEnd();
}

 

2) endTxt.cs 에서 넘어가던 씬을 gameManager.cs 의 함수로 만들기

 

using UnityEngine.SceneManagement;

public void retryGame()
{
    SceneManager.LoadScene("MainScene");
}

 

3) adsManager.cs 에서 보상을 적어두기

 

다시 시작하는게 보상!

 

void ResultAds(ShowResult result)
{
    switch (result)
    {
        case ShowResult.Failed:
            Debug.LogError("광고 보기에 실패했습니다.");
            break;
        case ShowResult.Skipped:
            Debug.Log("광고를 스킵했습니다.");
            break;
        case ShowResult.Finished:
            // 광고 보기 보상 기능 
            gameManager.I.retryGame();
            break;
    }
}

 

4) endTxt.cs 에서 마지막으로 텍스트가 눌렸을 때 광고를 보게 하기

 

public void retryGame()
{
    adsManager.I.ShowRewardAd();
}

 

5) 끝을 눌렀을 때 아래와 같이 나오면 완성

 

 

c. 주의사항

 

배포를 하려면 두가지 사항을 다시 바꿔줘야 함

 

1) Advertisement.Initialize(gameId, true);

 

adsManager 수정

 

true 를 false 로 바꾸기 (true는 테스트를 하겠다는 뜻)

 

2) Project Settings / Service / Ads / Test mode 체크 해제

 

 

3) 게임 종료 조건 3.0f -> 30.0f로

 

gameManager.cs 수정

 

 

 

F. 게임 제작 꿀팁 (에셋스토어, next step)

1. 무료 에셋스토어 구경하기

a. 무료 에셋스토어란?

음악, 배경, 캐릭터, 애니메이션 등 게임 개발 소스들을 구할 수 있는 곳! 

유료도 있고 무료도 있고 할인도 자주한다

 

b. 유명한 곳 둘러보기

1) 오픈게임아트 

 

OpenGameArt.org

 

opengameart.org

 

Browse → 2D Art 검색을 누르면 많은 소스가 나옴

눌러서 다운로드 받아 사용하면 됨

 

### Notice

여기있는 에셋은 무료이긴 하지만, 저작권 사용법이 조금씩 다르다

* CC-BY , GPL , ... ⇒ 사용에 뭔가 조건이 있음
* CC0 ⇒ 사용에 아무런 조건이 없음

 

2) 유니티 공식 에셋 제공 사이트

 

2D Environments & Characters | Unity Asset Store

Explore 2D environments & characters for your game making-project. Browse our wide library of free & paid assets on the Unity Asset Store.

assetstore.unity.com

 

< 위 공식사이트 예제 실행해보기 >

 

a) 아래 링크 클릭하기

 

FREE Casual Game SFX Pack | 음향 효과음 | Unity Asset Store

Layer in the sounds of FREE Casual Game SFX Pack from Dustyroom for your next project. Browse all audio options on the Unity Asset Store.

assetstore.unity.com

 

b) 내 에셋에 추가하기 클릭

 

-> 로그인이 필요하다면 로그인 진행

-> 승인이 필요하다면 승인도 진행

 

c) Unity에서 열기

 

 

d) 유니티의 패키지 매니저가 실행되면 다운로드를 클릭

 

 

e) Import를 눌러 저장의 범위를 체크하고 마무리

 

 

f) 생성된 폴더 확인

 

 

c. 팁 - 사용방법

애니메이션이나 캐릭터 보다는 배경이미지, 효과음, 배경음악 을 가져다 쓰는 게 좀 더 적당함

 

 

2. 우리가 만들만한 게임의 범위

a. 되짚어보기

1주차: 유니티의 기본 사용법 - 빗물받는르탄이

2주차: 유니티 사용법 복습1 + 데이터저장 - 풍선을 지켜라

3주차: 유니티 사용법 복습2 + 레벨 구현 - 고양이 밥주기

4주차: 퍼즐게임 만들기 & 로직체험 - 르탄이 맞추기

5주차: 소리, 광고

 

b. 더 공부한다면?

서버에 데이터 저장하기( firebase ), 3D로 카메라를 활용하기

지금 수준에서는 하이퍼 캐주얼 게임을 만들 수 있다!

 

c. 하이퍼 캐주얼 게임이란?

1) 세로로 플레이

2) 원 버튼(터치, 슬라이드)

3) 30~60초에 한 판

 

쉽게 즐길수 있는 게임들이다

 

한 달에 3~4개씩 게임을 만들어, 몇 개가 초 대박을 터뜨리면서 큰 회사가 됐다

→ Voodoo , Ketchapp , Lion studio와 같은 회사들

 

d. 내가 게임을 기획해본다면?

1) 쫄깃 류 : 아주 간단한데, 콤보가 핵심이라, 10 → 11 → 12콤보 갈 때에 심장이 쫄깃!

 

 

2) 통쾌 류 : 다다다다다 없앨 때 느끼는 쾌감

 

 

3) 경쟁 류 : 내가 죽나 네가 죽나 해보자!  (지금 수준에선 X)

 

 

4) 콘텐츠 류 : 더 궁금해. 궁금해!

 

 

5) 퍼즐 류 : 으으으. 깨고 싶다 깨고 싶어!