99jamin e0b73803a7 Do-37 [Feat] 보상형 전면 광고 추가
상점 패널의 첫 번째 요소를 광고 보상으로 설정하고, 클릭할 시 테스트 광고 실행 후 보상 함수 실행.
2025-03-17 16:58:31 +09:00

72 lines
2.1 KiB
C#

using UnityEngine;
using GoogleMobileAds.Api;
using System;
public class AdManager : MonoBehaviour
{
private RewardedInterstitialAd rewardedInterstitialAd;
private string adUnitId = "ca-app-pub-3940256099942544/5354046379"; // 테스트 광고 ID
void Start()
{
// Google Mobile Ads 초기화
MobileAds.Initialize(initStatus => { Debug.Log("AdMob Initialized"); });
// 광고 로드
LoadRewardedInterstitialAd();
}
// 보상형 전면 광고 로드
public void LoadRewardedInterstitialAd()
{
AdRequest request = new AdRequest();
RewardedInterstitialAd.Load(adUnitId, request,
(RewardedInterstitialAd ad, LoadAdError error) =>
{
if (error != null)
{
Debug.LogError("보상형 전면 광고 로드 실패: " + error);
return;
}
Debug.Log("보상형 전면 광고 로드 성공");
rewardedInterstitialAd = ad;
// 광고 종료 이벤트 설정
rewardedInterstitialAd.OnAdFullScreenContentClosed += HandleAdClosed;
});
}
// 보상형 전면 광고 실행
public void ShowRewardedInterstitialAd()
{
if (rewardedInterstitialAd != null && rewardedInterstitialAd.CanShowAd())
{
rewardedInterstitialAd.Show((Reward reward) =>
{
Debug.Log("코인 지급됨: " + reward.Amount);
// 코인 지급 로직
GrantReward();
});
}
else
{
Debug.Log("보상형 전면 광고가 아직 로드되지 않았습니다.");
}
}
// 광고 닫힘 이벤트 처리
private void HandleAdClosed()
{
Debug.Log("보상형 전면 광고 닫힘, 새로운 광고 로드.");
LoadRewardedInterstitialAd(); // 광고가 닫힌 후 다시 로드
}
// 코인 지급 함수
private void GrantReward()
{
Debug.Log("코인 지금 완료");
// 코인 보상 로직 추가
}
}