반응형
준비 단계 :
유니티 창에서 Window -> General -> Services에 들어갑니다. 단축키 ctrl + 0 을 사용하면 편합니다.
그러면 우선 유니티 프로젝트 아이디를 생성해야 됩니다.
자신의 아이디를 적고 Create를 눌러줍니다.
그러면 서비스탭 가장 상위에 Ads 탭이 보일겁니다. off를 눌러 on으로 설정해줍니다.
코드 작성 :
이제 다음과 같은 코드를 작성하고 버튼을 추가해 이 스크립트를 달아줍니다.
동영상 시청 후 줄 보상을 HandleShowResult 내의 ShowResult.Finished 부분에 작성해줍니다.
스크립트 속 id는 services - ads 탭에 있는 dashboard에 들어간 다음, 프로젝트 탭을 열어 해당 프로젝트를 눌러주면, Monetization 탭 속의 Placements를 클릭해주시면 game id를 얻을 수 있습니다. 근데 이 id가 Start() 에 있는 Advertisement.Initialize(id)에 쓰이는데 이게 뭔지는 잘 모르겠습니다. 제가 구입한 책을 참고하여 작성하였습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;
[RequireComponent(typeof(Button))]
public class UnityAdsButton : MonoBehaviour
{
#if UNITY_IOS
public const string id = "1111111";
#elif UNITY_ANDROID
public const string id = "1111111";
#elif UNITY_EDITOR
public const string id = "1111111";
#endif
public string placementId = "rewardedVideo";
private Button adButton;
// Start is called before the first frame update
void Start()
{
adButton = GetComponent<Button>();
if (adButton)
{
adButton.onClick.AddListener(ShowRewardedVideo);
}
Advertisement.Initialize(id);
}
public void ShowRewardedVideo()
{
ShowOptions options = new ShowOptions();
options.resultCallback = HandleShowResult;
Advertisement.Show(placementId, options);
}
void HandleShowResult(ShowResult result)
{
if (result == ShowResult.Finished)
{
// Reward the player
}
else if (result == ShowResult.Skipped)
{
Debug.LogWarning("The player skipped the video - DO NOT REWARD! ");
}
else if (result == ShowResult.Failed)
{
Debug.LogError("Video failed to show");
}
}
}
댓글