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

来源:互联网 发布:pythonpath linux 编辑:程序博客网 时间:2024/06/05 16:25

例子中使用的开发环境为Android Studio 2.2, Unity3d5.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。上传到手机上试运行。

OK大功告成。
0 0
原创粉丝点击