You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity集成AdMob激励广告 观看完成后奖励玩家+1体力实现方法

Unity AdMob激励视频发放体力奖励实现方案

核心逻辑说明

实现逻辑分三块:补全广告回调、给体力系统加对外的加体力接口、打通两个模块的引用,不要在广告子线程直接改游戏数据,避免闪退。

1. 补全广告脚本的缺失逻辑

你现在的广告脚本只绑定了事件,没写回调实现,也没写按钮触发广告的方法,直接补全即可:
首先在广告脚本类里声明体力管理器的引用,后续用来调用加体力方法:

// 拖入挂了体力管理脚本的物体
public EnergyManager energyManager;

然后补全两个广告事件的回调,以及按钮点击方法:

// 激励视频完整播放完成的回调,只做奖励标记,不直接操作游戏数据
private void HandleRewardBasedVideoRewarded(object sender, Reward e)
{
    isRewarded = true;
}

// 广告关闭回调,每次关广告都预加载下一条
private void HandleRewardBasedVideoClosed(object sender, EventArgs e)
{
    RequestRewardBasedVideo();
}

// 把这个方法绑到「看广告领体力」按钮的点击事件上
public void OnClickGetEnergyAd()
{
    if (rewardBasedVideo.IsLoaded())
    {
        rewardBasedVideo.Show();
    }
    else
    {
        Debug.Log("广告加载中,请稍后再试");
    }
}

最后把你Update方法里空着的奖励发放逻辑补上:

void Update()
{
    if (isRewarded)
    {
        isRewarded = false;
        // 看完广告发1点体力
        energyManager.AddEnergy(1);
    }
}

小提醒:你原来的广告脚本最后缺了类的收尾大括号,补代码的时候注意括号匹配。

2. 给体力管理脚本增加加体力的公共方法

直接在你现有的体力脚本里加下面的方法,广告奖励、活动道具发体力都可以复用这个方法,自动处理上限、计时器、数据存储逻辑:

/// <summary>
/// 增加体力
/// </summary>
/// <param name="addNum">增加的体力数量</param>
public void AddEnergy(int addNum)
{
    // 计算加完的体力值,最多不超过上限
    currentEnergy = Mathf.Clamp(currentEnergy + addNum, 0, maxEnergy);

    if (currentEnergy >= maxEnergy)
    {
        // 体力满了就停止恢复计时
        isRestoring = false;
        timerText.text = "Full";
    }
    else
    {
        // 如果之前没在恢复计时,启动恢复协程
        if (!isRestoring)
        {
            StartCoroutine(RestoreEnergy());
        }
    }

    // 刷新UI、存本地数据
    UpdateEnergy();
    UpdateEnergyTimer();
    Save();
}

小提醒:你原来UseEnergy方法里的日志拼写有误,Isufficient Energy!!正确拼写是Insufficient Energy!!,不影响功能,看不顺眼可以改。

3. 编辑器配置步骤

  • 回到Unity编辑器,选中挂广告脚本的物体,把场景里挂了体力管理脚本的对象拖到energyManager字段上
  • 选中你做的领体力按钮,在OnClick事件列表里添加广告脚本的OnClickGetEnergyAd方法
  • 测试的时候记得用AdMob官方测试广告位ID,不要用正式ID测试,否则容易被封广告账号

避坑提示:不要在OnAdRewarded回调里直接修改体力数据、操作UI,AdMob的回调不在Unity主线程,直接操作很容易出现偶发闪退、UI不刷新的问题,用isRewarded标记在Update主线程里处理奖励是最稳定的写法。


内容的提问来源于stack exchange,提问作者Clincă Florentin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:15:45