블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

유니티 애즈(Unity Ads)를 이용하여, 광고를 시청하면 골드를 보상받는 예제를 포스팅합니다.


 구현하고자 하는 기능은 다음과 같습니다.

* 구현 기능

 - 버튼 클릭 -> 유니티 애즈 시청 -> 골드 보상




 다음은 작업의 전체 순서입니다.

#1. 유니티 애드 설정 (Web 작업)

#2. 유니티 프로젝트 적용 및 테스트 (Unity3D, 디바이스 작업)



#1. 유니티 애드 설정 


1. https://unityads.unity3d.com에 로그인 합니다.


2. 게임탭에서 '+새 게임 추가'를 클릭합니다.


3.플랫폼을 선택(안드로이드)하고, '여기'를 클릭합니다. 출시전이므로 어플리케이션 찾기를 건너뜁니다.


4. 이름을 입력하고, '게임 추가'버튼을 클릭합니다. 정보 인증 설정후 '계속'을 클릭합니다.


5. 게임탭에 새 게임이 추가되었습니다. 게임 ID는 본문 뒷부분에서 코드(UIManager.cs)에 사용합니다. 

 게임 이름(UnityAdsTest)을 클릭합니다.


6. '수익화 설정'탭에서, '고급 설정 보기'를 클릭합니다.


7. Video ad placement의 '설정'을 클릭합니다.


8. 옵션을 설정합니다. 강제 시청을 위해 '동영상 건너 뛰기 허용' 항목의 체크를 제거하고, '저장'을 클릭하여 완료합니다.




#2. Unity 프로젝트 적용 및 테스트


1. Unity3D 새 프로젝트를 생성합니다. 타이틀은 UnityAdsTest로 하였습니다.


2. Unity Ads 패키지를 임포트합니다. 유니티 애셋 스토어에서 다운받을 수 있습니다. (https://www.assetstore.unity3d.com/en/#!/content/21027)


3. Canvas및 버튼(BtnUnityAds)을 생성합니다. 각 설정은 임의로 합니다.


4. C# 스크립트, UIManager.cs를 생성하고 다음의 코드로 대체합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using UnityEngine;
using System.Collections;
 
using UnityEngine.UI;
using UnityEngine.Advertisements;
 
public class UIManager : MonoBehaviour {
 
    public Button _BtnUnityAds;
    ShowOptions _ShowOpt = new ShowOptions();
    int _Gold = 0;
 
    void Awake()
    {
        Advertisement.Initialize("63660"true);
        _ShowOpt.resultCallback = OnAdsShowResultCallBack;
        UpdateButton();
    }
 
    void OnAdsShowResultCallBack(ShowResult result)
    {
        if (result == ShowResult.Finished) _Gold += 100;
    }
 
    void UpdateButton()
    {
        _BtnUnityAds.interactable = Advertisement.IsReady();
        _BtnUnityAds.GetComponentInChildren<Text>().text 
            = "See ads and earn gold\r\nGold = " + _Gold.ToString();
    }
 
    public void OnBtnUnityAds()
    {
        Advertisement.Show(null, _ShowOpt);
    }    
 
    void Update() { UpdateButton(); }
}
 
cs

- 15: Advertisement.Initialize( "게임ID", 테스트광고 여부 )

게임ID는 유니티 애드 사이트에서 얻을 수 있습니다.

: 출시전 테스트를 위해서 테스트 광고 여부 인자를 true로 합니다. 

> true: 테스트용 광고가 나옵니다.

> false: 실제 광고가 나옵니다.


- 20: OnAdsShowResultCallBack( ShowResult result )

: 광고 보기후 호출되는 콜백입니다. result인자의 값에 따라 처리합니다.


- 27: _BtnUnityAds.interactable = Advertisement.IsReady()

Advertisement.IsReady()는 광고가 보여줄 수 있는 상태인지를 반환하는 함수입니다. 보여줄 수 없다면 버튼을 비활성화 시킵니다.


5. UIManager를 Canvas의 컴포넌트로 삽입합니다.


6. Canvas의 인스펙터창에서 UIManager: Btn Unity Ads의 인자로 BtnUnityAds오브젝트를 지정합니다.


7. BtnUnityAds의 OnClick 이벤트를 지정합니다. 오브젝트는 Canvas로, 함수는 UIManager:OnBtnUnityAds로 합니다.


8. 안드로이드 플레이어 설정을 마친후 빌드하여 테스트합니다.

    : 실행하면 버튼이 잠시후 활성화됩니다. ( Advertisement.IsReady() )


: 버튼을 클릭하면 보여지는 테스트용 광고


: 광고 종료후 Gold가 100으로 되었습니다.



출처 : http://gnupart.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%95%A0%EB%93%9CUnity-Ads-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%A0%81%EC%9A%A9

반응형
Posted by blueasa
, |