您当前的位置: 首页 >  unity

程序员正茂

暂无认证

  • 7浏览

    0关注

    283博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

程序员正茂 发布时间:2017-02-23 12:43:49 ,浏览量:7

在国外网上看到一个很好的教程:Creating Android Plugin (AAR) for Unity with Android Toast

--------------------------------------------以下是原文----------------------------------------------------------------------

例子中使用的开发环境为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。在节点与节点之间加上。 四.修改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,用文件中节点下的以下属性(共4个),替换掉Assets\Plugins\Android下AndroidManifest.xml中的属性(共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("currentActivity");
		// 参数  
		string[] mObject = new string[2];
		mObject[0] = "Dialog title";
		mObject[1] = "Dialog text is here!!";
		// 调用方法  
		string ret = jo.Call("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大功告成。

关注
打赏
1660743125
查看更多评论
立即登录/注册

微信扫码登录

0.3001s