Android调用Unity3D界面的方法

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

  • Android

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

登录后复制


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

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

android如何调用unity3d android调用unity界面_xml


应用名建议填写 你准备发布的包名

例如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. android如何调用unity3d android调用unity界面_android_02


只留下如图
android如何调用unity3d android调用unity界面_android如何调用unity3d_03


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>

最后结构就是这样
android如何调用unity3d android调用unity界面_java_04


然后我们开始run,但是我们修改了gradle文件 所以现在我们选择

android如何调用unity3d android调用unity界面_android_05


接着等它build结束,我们把视图切回project,我们就能找到这个aar文件了
android如何调用unity3d android调用unity界面_java_06


我们把它复制到桌面上,或者放在这,别动AS了

  • Unity

现在我们打开Unity,新建一个项目,都默认就好了

首先找到我们的project视图

我们要在里面创建如下所示,Plugins根目录就是Assets
android如何调用unity3d android调用unity界面_java_07


选择我们的app-release右键选择Show In Explorers删除.mate文件

然后打开我们的压缩包aar文件,找到libs文件夹,里面有我们的jar包(unity的)删除它。ok完成回到我们的unity。

打开了Unity,我们在这里
android如何调用unity3d android调用unity界面_java_08


创建一个button,同时Unity会自动帮我们创建好Canvas和EventSystem

接着点击Canvas,选择

android如何调用unity3d android调用unity界面_xml_09


如图所示,选择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()中

然后我们选择方法如下图
android如何调用unity3d android调用unity界面_java_10


最后我们打包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 )

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空