Unity android 接有米广告和分享功能

来源:互联网 发布:绿盟网络审计系统 编辑:程序博客网 时间:2024/05/17 10:53

有一段时间没有写博客了,最近在研究了有米广告的接入和分享的功能,准备添加到游戏当中,过程中遇到些许的问题,所以想分享出来,希望后来者能少走一些弯路!
首先我说说有米广告吧!
首先你去有米的官网下载最新的sdk,一般来说你下载的SDK里面会有一个Demo和安装包还有说明文档,里面应该会有一个Unity的Demo。然后你新建一个工程,打开这个Demo,然后运行测试,如果没有问题,就好了,一般来说,是不会有什么问题的,毕竟是官方的包。然后最重要的是,你把你需要添加广告的工程导出一个包来,然后导入到你刚刚测试没有问题的Demo里面。我的是这样的这里写图片描述
然后打开里面的脚本YoumiU3dDemo你可以看到各种在Unity3d 下面的调用方法,只有你那里需要用到就写到哪里。`using UnityEngine;
using System.Collections;

public class YoumiU3dDemo : MonoBehaviour {

AndroidJavaClass mJc;AndroidJavaObject mJo;private int mPoints; // 更新积分,这个方法在Android项目中调用void UpdatePoints(string points) {    this.mPoints = int.Parse(points);}void OnGUI(){    GUILayout.Label("Youmi Unity3d Demo");    GUILayout.Label("Current Points: "+mPoints);    // 调用Android工程提供的api——展示插屏广告    if(GUILayout.Button("Show Spot",GUILayout.Height(100))){        mJo.Call("showSpot");     }    // 调用Android工程提供的api——展示视频广告    if (GUILayout.Button ("Show Video", GUILayout.Height (100))) {        mJo.Call("showVideo");    }    // 调用Android工程提供的api——展示全屏积分墙    if(GUILayout.Button("Show Offers",GUILayout.Height(100))){        mJo.Call("showOffers");     }    // 调用Android工程提供的api——展示对话框积分墙    if(GUILayout.Button("Show Offers Dialog",GUILayout.Height(100))){        mJo.Call("showOffersDialog");     }    // 调用Android工程提供的api——展查询积分    if(GUILayout.Button("Query Points",GUILayout.Height(100))){        this.mPoints=mJo.Call<int>("queryPoints");    }    // 调用Android工程提供的api——奖励10积分    if(GUILayout.Button("Award 10 Points",GUILayout.Height(100))){        if(mJo.Call<bool>("awardPoints",10)){            this.mPoints=mJo.Call<int>("queryPoints");          }    }    // 调用Android工程提供的api——消耗5积分    if(GUILayout.Button("Spend 5 Points",GUILayout.Height(100))){        if(mJo.Call<bool>("spendPoints",5)){             this.mPoints=mJo.Call<int>("queryPoints");         }    }                    if(GUILayout.Button("Exit",GUILayout.Height(100))){        Application.Quit();     }}void Start () {    mJc=new AndroidJavaClass("com.unity3d.player.UnityPlayer");    mJo=mJc.GetStatic<AndroidJavaObject>("currentActivity");    mJo.Call("showBanner");    }void Update () {    if(Input.GetKeyDown(KeyCode.Escape)){        // 如果开发者使用了插屏广告,那么当按返回键的时候,逻辑应该如下:        // 1、如果插屏广告在展示时,返回键应该先关闭正在展示的插屏广告,在按一次返回键才执行开发者自己的逻辑(如:退出应用)        // 2、如果插屏广告没有在展示时,就进行自己的逻辑(如:退出应用等)        // 当插屏广告已经消失了,就执行后续逻辑(这里为退出应用)        // Android示例项目中定义0为返回键        if (mJo.Call<bool>("closeSpot", 0) == true) {            Application.Quit();         }    }    if(Input.GetKeyDown(KeyCode.Home)){        // 按Home键时,调用尝试关闭插屏广告的代码,开发者可以实现后续逻辑        // Android示例项目中定义1为Home键        if (mJo.Call<bool>("closeSpot", 1) == true) {        }    }}

}
`比如说我这个按钮下面需要用到,点击这个按钮显示插屏广告

     AndroidJavaClass mJc;    AndroidJavaObject mJo;   mJc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");        mJo = mJc.GetStatic<AndroidJavaObject>("currentActivity");        mJo.Call("showBanner");               mJo.Call("closeSpot");//调用插屏广告

需要注意的是你需要打开有米给的一个Android 工程,修改里面的参数,然后到处jar包,然后导入到Unity里面,才能调用上面的方法!下面是Android的工程,这里写图片描述
打开MinaActicity 的脚本

`
AdManager.getInstance(this).init("f5e4c5b8d12e622b", "5bf3a64aa4a1afda", false);
这里填入有米广告申请的appID 和 appSecret;
有的可能需要修改androidManifest的文件的配置,这里应该是修改好的!不需要修改只需要修改脚本就好。然后导入jar包导入Unity当中!然后测试就没有问题了!注意的是到处包的时候不要资源文件!就是不要把R文件打包,如果打包会导致发布的时候资源冲突!明天说分享的SDK

0 0
原创粉丝点击