Unity3d调用Anroid(Android Studio环境)方法

本文中使用的开发环境为 Android Studio 2.2, Unity3d 5.4.3

Android Studio环境

一.新建Android工程
1.打开Android Studio,【File】->【New】->【New Project】。在Application name中输入zouxin,Company Domain中输入enjoy.com。包名 Package Name 自动生成com.enjoy.zouxin(最好全都小写,尽管有提示首字母大写),必须与unity中打包参数 Bundle Identifier 中的包名一致。点击【Next】

2.选择Phone and Tablet,设置Minimum SDK:API16:Android4.1(Jelly Bean)。点击【Next】

3.选择 Empty Activity。点击【Next】

4.Activity Name及Layout Name保持默认。点击【Finish】

二.导入Unity的classes.jar到Android工程
1.在Windows下,打开目录C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes,按Ctrl+C复制classes.jar。

2.切换到Android Studio,选择zouxin工程的Project视图,选中zouxin/app/libs文件夹,按Ctrl+V弹出复制对话框,点击【OK】即完成了将unity3d的classes.jar复制到了Anroid工程中。

3.在Porject视图中选择app点击右键选择【Open Module Settings】,切换到Dependencies选项卡,点击右边的【+】选择【2 File Dependecy】,选择libs/classes.jar。点击【OK】。

三.编写 MainActivity 代码
 package com.enjoy.zouxin;
import android.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;
 
public class MainActivity extends UnityPlayerActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
 
    //弹出对话框
    public String ShowDialog(final String _title, final String _content) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle(_title).setMessage(_content).setPositiveButton("Down", null);
                builder.show();
            }
        });
 
        return "This is Return value";
    }
}


三.修改 AndroidManifest.xml
切换到Anroid视图,打开app/manifests/AndroidManifest.xml。在<activity>节点与<intent-filter>节点之间加上<meta-data android:name="unityplayer.UnityActivity" android:value="true" />。


四.修改app下的build.gradle
切换到project视图,打开zouxin/app/build.gradle
1.将首行的apply plugin: 'com.android.application' 修改为 apply plugin: 'com.android.library' 
2.删除applicationId "com.enjoy.zouxin",位于以下位置。
android {
...
    defaultConfig {
        applicationId "com.enjoy.zouxin"
...
    }    
}

五.编译生成aar包,
1.点击菜单【Build】->【Build APK】,如果能生成成功会在zouxin\app\build\outputs\aar下生成app-debug.aar。

Unity3d环境
1.新建Unity工程取名MainPro。手动创建文件夹Assets\Plugins\Android。
2.复制Android Studio中的app-debug.aar(zouxin\app\build\outputs\aar)及AndroidManifest.xml(位于zouxin\app\src\main)到Unity3d中的Assets\Plugins\Android目录下。

3.用WinARA软件打开Unity3d中的Assets\Plugins\Android目录的aar包,删除res文件夹;删除libs下的classes.jar。
4.打开C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Apk下的AndroidManifest.xml,用文件中<application>节点下的以下属性(共4个),替换掉Assets\Plugins\Android下AndroidManifest.xml中的<application>属性(共5个)。
android:theme="@style/UnityThemeSelector"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:debuggable="true">

5.在Unity3d创建一个按钮名为TestBtn【GameObject->UI->Button】,调整按钮位置及大小,保存场景名为main.unity。
6.创健一个C#脚本TestBtnScript,在脚本中添加函数。
public void MyShowDialog()
    {
        // Android的Java接口  
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        // 参数  
        string[] mObject = new string[2];
        mObject[0] = "Dialog title";
        mObject[1] = "Dialog text is here!!";
        // 调用方法  
        string ret = jo.Call<string>("ShowDialog", mObject);
    }

7.将TestBtnScript脚本与TestBtn绑定,将MyShowDialog函数设为TestBtn的点击响应函数。
8.点击菜单【File】->【Build Settings】,选中Android平台。修改Player Setting中的安卓属性Minimum API Level,使其与Andorid Studio工程中一致(API level 16)。修改Company Name为enjoy,修改Project Name为zouxin,修改Bundle Identifier为com.enjoy.zouxin(与Android Studio中的包名一致)。
(09)
9.将当前场景加入Scenes In Build列表中,完成Build。上传到手机上试运行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值