博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3D Android项目调用插屏广告
阅读量:6122 次
发布时间:2019-06-21

本文共 2605 字,大约阅读时间需要 8 分钟。

参考了雨松MOMO的文章。

http://www.xuanyusong.com/archives/667

http://bbs.18183.com/forum.php?mod=viewthread&action=printable&tid=149758

 

1首先准备unity为交互Android自备的class.jar文件。

所以需要将接口classes.jar引入至当前工程但中。接口包的所在地,打开Finder->应用程序->Unity->点击Unity图标,鼠标右键选择“显示包内容”->Contents->PlaybackEngines->AndroidPlayer->bin->classes.jar 。接口包引入工程后,开始编写JAVA代码。

 

2新建android 项目

将class.jar复制到libs文件夹中,将要使用的插屏广告也放入,并按照对应的要求,配置好AndroidManifase.xml.

我是和MOMO的代码一样,只是在UnityTestActivity.java添加了

public void ShowAd(String adTag){        MIXView.showAd(this, adTag);    }

首先Build一下当前的Eclipse工程,代码所有的.class文件都生成在了Android工程的bin文件夹中,下面需要对这些.class文件进行打包。

请大家仔细看一下解开的包应该与你的Android对应的包名保持一致,我的包名是com.xys,所以文件夹就是class->com->xys->.class代码。

也就是说你要在class目录下执行jar -cvf class.jar *

 

3 创建Unity工程

请大家开始创建Unity工程。如下图所示,Unity工程中文件夹的结构如下,Plugins->Android的名称不能修改,必需保持一致。接着把Eclipse中Android的工程文件拷贝至这里,除了Android工程中的src文件夹,将其它文件夹全部拷贝至Plugins->Android文件夹中。最后在Plugins->Android文件夹中创建bin文件夹,然后将刚刚生成的.jar文件拷贝进来,jar的名称可以随便修改,但是jar包里面必须是com->xys->你的class文件,否则运行程序后提示找不到类文件。

 

 

      最后在Unity工程中创建一个C#脚本,就是上图中的Test.cs,直接将它绑定在摄像机中,它用来通知界面打开Activity。如下图所示,利用GUI在屏幕中创建两个按钮,点击按钮打开不同的Activity。

 

public class Test : MonoBehaviour{    // Update is called once per frame    void Update ()    {        //当用户按下手机的返回键或home键退出游戏        if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home) )          {               Application.Quit();          }    }    void OnGUI()    {        if(GUILayout.Button("OPEN Activity01",GUILayout.Height(100)))        {            //注             AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");                AndroidJavaObject jo = jc.GetStatic
("currentActivity"); jo.Call("StartActivity0","first activity"); } if(GUILayout.Button("OPEN Activity02",GUILayout.Height(100))) { AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic
("currentActivity"); jo.Call("StartActivity1","second activity"); } if(GUILayout.Button("show Ad",GUILayout.Height(100))) { //i have change the package name to "com.unity3d.player.UnityPlayer" AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic
("currentActivity"); jo.Call("ShowAd","default"); } }}

 

最后大家一定要注意Unity中的包名,要和Android工程保持一致,否则无法调用。如下图所示,Bundle Identifier* 当前项目为com.xys 。另外其它的选项也在其中,请大家仔细阅读。

 

转载于:https://www.cnblogs.com/aosting/p/3459878.html

你可能感兴趣的文章
Linux下的CPU性能瓶颈分析案例
查看>>
spring mvc入门
查看>>
2012在数据库技术会议上的讲话PPT打包
查看>>
【Android】 TextView设置个别字体样式
查看>>
python svn
查看>>
raise语句
查看>>
sequence2(高精度dp)
查看>>
ABP实战--集成Ladp/AD认证
查看>>
存储过程
查看>>
phpcms v9栏目列表调用每一篇文章内容方法
查看>>
python 自定义信号处理器
查看>>
luov之SMTP报错详解
查看>>
软件概要设计做什么,怎么做
查看>>
dwr
查看>>
java的特殊符号
查看>>
word2010中去掉红色波浪线的方法
查看>>
fabric上下文管理器(context mangers)
查看>>
JQuery-EasyUI Datagrid数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)
查看>>
并发和并行的区别
查看>>
php小知识
查看>>