Android与Unity的交互(Intent启动网页)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34206863/article/details/79410456

从没接触过unity,但是实习的时候需要了解

  • Android

在android启动一个网页,很简单

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);

但是在unity中就不是这样啦,那如何操作呢。
首先我们新建一个AS工程

create
应用名建议填写 你准备发布的包名
例如cn.krisez.demo 就写demo
接下来一直next就Ok 当然api建议选择4.0以上(别问我为什么)
接下来进入我们的unity安装地址

C:\Program Files\Unity 2018.1.0b9\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\

找到class.jar复制到我们AS得libs文件夹下面
然后就以来我们的jar包(不会请谷歌Or百度)
等工程创建好后,进入build.gradle(app)
1. apply plugin: ‘com.android.application’ 修改为 apply plugin: ‘com.android.library’
2. applicationId 这一行删除
3. res
只留下如图
这里写图片描述
4. 最后Android里的重要组件Activity 删了emmmmm删了。。。
因为Unity在生成APK文件的时候,会自己有一个Activity(UnityPlayerActivity),因为游戏只有一个Activity就好了其他的再说,对吧。
5. 接着为了我们能够交互,我们java要有一个代码,取名Utils.java

public class Utils {
    public static void startAnother(Activity activity){
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("http://www.krisez.cn"));
        activity.startActivity(intent);
    }
}

由于我们没有了activity,所以我们的AndroidMainfest.xml类似于:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.krisez.air">
    <application  android:label="@string/app_name"></application>
</manifest>

最后结构就是这样
这里写图片描述
然后我们开始run,但是我们修改了gradle文件 所以现在我们选择
这里写图片描述
接着等它build结束,我们把视图切回project,我们就能找到这个aar文件了
这里写图片描述
我们把它复制到桌面上,或者放在这,别动AS了

  • Unity

现在我们打开Unity,新建一个项目,都默认就好了
首先找到我们的project视图
我们要在里面创建如下所示,Plugins根目录就是Assets
这里写图片描述
选择我们的app-release右键选择Show In Explorers删除.mate文件
然后打开我们的压缩包aar文件,找到libs文件夹,里面有我们的jar包(unity的)删除它。ok完成回到我们的unity。
打开了Unity,我们在这里
这里写图片描述
创建一个button,同时Unity会自动帮我们创建好Canvas和EventSystem
接着点击Canvas,选择

这里写图片描述
如图所示,选择camera视角同时绑定camera
接着我们Create一个C#脚本(没有Js了开始习惯吧,我也才接触啊)挂在到canvas上面(直接拖过去就好了)
接着我们编写脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Click : MonoBehaviour {
    private AndroidJavaObject jo;
    // Use this for initialization
    void Start () {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");//初始化
        jo = jc.GetStatic<AndroidJavaObject>("currentActivity");//得到activity

    }

    // Update is called once per frame
    void Update () {

    }

    public void Show()
    {
        AndroidJavaClass ajc = new AndroidJavaClass("cn.krisez.air.Utils");//得到自己写的类
        ajc.CallStatic("startAnother",jo);
    }
}

我们选择将canvas(因为脚本挂在这玩意上面)添加到button的onclick()中
然后我们选择方法如下图
这里写图片描述
最后我们打包File->Build Settings->android->switch platform->player settings
我们能看到Inspector有我们的设置信息
Company Name 公司名 不能默认
Product Name 产品名 不能默认
然后我们找到other setting
填入我们的app信息了
Color Space选择Gamma
其他不管,接着我们的Identification的内容
packgename 包名 你AS的包是撒 就写撒,别瞎写
然后其他默认就好(如果你要签名,选择publishing settings按要求填就Ok )


最后我们Build得到Apk,安装测试,完成。这里就不贴图了。有问题请请说

个人网站地址点我

没有更多推荐了,返回首页