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

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

作者: Krisez | 来源:发表于2018-03-02 10:14 被阅读0次

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

    Android

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

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

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

    应用名建议填写 你准备发布的包名例如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. 

    只留下drawable,layout,values里的string.xml 。。

    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类似于:

    <application android:label="@string/app_name">

    最后结构

    然后我们开始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("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,安装测试,完成。这里就不贴图了。

    有问题请说

    个人网站地址Krisez – Android

    相关文章

      网友评论

          本文标题:Android与Unity的交互(Intent启动网页)

          本文链接:https://www.haomeiwen.com/subject/scpbxftx.html