[安卓]Android Studio 3.0 JDK安卓环境配置(2017.10)

http://blog.csdn.net/bulademian/article/details/78387052

[安卓]Android Studio 3.0 安装包说明(2017.10)

http://blog.csdn.net/bulademian/article/details/78387199

[安卓]Android Studio 3.0 安装 后的 正常的设置的反应(2017.10)

http://blog.csdn.net/bulademian/article/details/78387367

-------------------------------------------------------------------------

主要是 根据 参考资料3 的内容。本文尽量减少文字的 描述。参考资料1 有 一点 问题。

本文的内容需要 对照 参考资料3 来查看

建立 新的工程。

Unity和Android Studio 3.0 交互通讯

Unity和Android Studio 3.0 交互通讯

Unity和Android Studio 3.0 交互通讯

Unity和Android Studio 3.0 交互通讯

 

点击 FINISH 按钮,新建工程。

Unity和Android Studio 3.0 交互通讯





找到 libs 的文件路径。右键 libs 文件夹,find in path 。

Unity和Android Studio 3.0 交互通讯


按 esc 按键 退出 find in path。

打开文件路径。

Unity和Android Studio 3.0 交互通讯


安装路径下 的 UNITY 文件夹。(具体 UNITY 的设置 参考下一篇文章 参考资料2)

D:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes

classes.jar

复制粘贴 到 

E:\Android\AndroidStudioProjects\UnityTest\app\libs

文件夹,如下图所示。

Unity和Android Studio 3.0 交互通讯



Unity和Android Studio 3.0 交互通讯


Unity和Android Studio 3.0 交互通讯


正常情况下,这里就会有如下图所示。

Unity和Android Studio 3.0 交互通讯


Unity和Android Studio 3.0 交互通讯Unity和Android Studio 3.0 交互通讯



Unity和Android Studio 3.0 交互通讯

不做任何 处理,点击 FINISH 按钮后。

就新建了MainActivity ,右边是初始脚本。


Unity和Android Studio 3.0 交互通讯


Unity和Android Studio 3.0 交互通讯


删除

<activity android:name=".MainActivity"></activity>

Unity和Android Studio 3.0 交互通讯


复制初始模块 的这个app 的 mainfests 文件夹的 AndroidMainfest.xml 文件的内容。

Unity和Android Studio 3.0 交互通讯


粘贴到 新建unity_exchage模块 的这个unity_exchage 的 mainfests 文件夹的 AndroidMainfest.xml 文件的内容。

Unity和Android Studio 3.0 交互通讯


由于这2个模块 中都有 MainActivity ,原文并没有 说明 是哪个 MainActivity。因此 先 对 app 的MainActivity 进行修改。

Unity和Android Studio 3.0 交互通讯

后来发现 是 unity_exchage 的 MainActivity

Unity和Android Studio 3.0 交互通讯



import com.unity3d.player.UnityPlayerActivity;
Unity和Android Studio 3.0 交互通讯


这个时候,如下所示。

Unity和Android Studio 3.0 交互通讯


改为如下所示。

Unity和Android Studio 3.0 交互通讯


下面就是在Android中编写Unity要调用的方法了,例如我这里只写一个简单的两数求和的方法:

//两树求和
public int add(int a,int b)
{
    return a+b;
}

Unity和Android Studio 3.0 交互通讯


选中 unity_exchange 点击build -- Make Module 'unityexchange'

Unity和Android Studio 3.0 交互通讯


等待一下,就会显示如下所示。如果没有,就重新试几次。

Unity和Android Studio 3.0 交互通讯


使用 Build -- Make Project 或者 Build -- Rebuild Project 重新编译工程。

工程 下 的 unity_exchange 的 build 的 intermediates 的 bundles 的debug没有如下图 所示 的文件,就多 重新编译工程几次。

Unity和Android Studio 3.0 交互通讯


右键 debug 文件夹,show in explorer
Unity和Android Studio 3.0 交互通讯

Unity和Android Studio 3.0 交互通讯


使用 Build -- Make Project 或者 Build -- Rebuild Project 重新编译工程。
然后把debug文件夹下的classes.jar文件移动到libs文件夹中,并且把libs文件夹中的class.jar文件替换掉。然后将debug文件夹下的libs文件夹、res文件夹、AndroidManifest.xml文件导入到Unity的Assets/Plugins/Android文件夹下(没有这个文件夹需先创建)。

Unity和Android Studio 3.0 交互通讯


AndroidManifest.xml就是 如下图所示,的01_Unity_Message3/unity_exchange/src/main/AndroidManifest.xml

Unity和Android Studio 3.0 交互通讯

如果下图中没有 AndroidManifest.xml  文件,就把上图所示的AndroidManifest.xml  复制粘贴到下面。


就把 把下面这3个文件(包含   AndroidManifest.xml )复制粘贴到 如下图所示的  Unity 的位置。

Plugins/Android/
Unity和Android Studio 3.0 交互通讯

Unity和Android Studio 3.0 交互通讯

正常 的文件 结构如下所示。从 AS3.0 导入 过来的文件,都在 Plugins-- Android 里面

Unity和Android Studio 3.0 交互通讯


新建脚本,挂载 上 Main Camera 上。
Unity和Android Studio 3.0 交互通讯



[csharp] view plain copy
  1. using System.Collections;  
  2. using System.Collections.Generic;  
  3. using UnityEngine;  
  4. using UnityEngine.UI;//使用 该引用,才能获得 Text 组件。  
  5.   
  6. public class Android_Test : MonoBehaviour {  
  7.   
  8.     private Transform canvasTras;//UGUI的Canvas  
  9.     private Text text;//用来显示 界面的文本  
  10.     private Button btn;//前端的按钮  
  11.   
  12.     private AndroidJavaObject jo = null;  
  13.   
  14.   
  15.   
  16.     // Use this for initialization  
  17.     void Start () {  
  18.         //固定写法  
  19.         AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");  
  20.         jo = jc.GetStatic<AndroidJavaObject>("currentActivity");//获取当前Activity对象,即Android中的MainActivity  
  21.   
  22.         canvasTras = GameObject.Find("Canvas").transform;  
  23.         text = canvasTras.Find("Text").GetComponent<Text>();  
  24.         btn = canvasTras.Find("Button").GetComponent<Button>();  
  25.         btn.onClick.AddListener(Click);//按钮点击事件监听下面的Click()方法  
  26.   
  27.     }  
  28.   
  29.     //这个方法是在界面点击按钮的时候调用,使用的是UGUI的BUTTON组件  
  30.     public void Click()  
  31.     {  
  32.         text.text = "";//点击的时候先清空  
  33.         int res = jo.Call<int>("add", 56, 100);//调用Android中的方法,"add"为方法名字,56,100,分别是想加的参数  
  34.         text.text = "56 + 100的结果是:" + res.ToString();//显示前端  
  35.     }  
  36. }  


在 Unity 的 GameObject -- UI 新建 Text 和 Button
Unity和Android Studio 3.0 交互通讯


布局如下所示

Unity和Android Studio 3.0 交互通讯


复制 package 的名字

Unity和Android Studio 3.0 交互通讯


粘贴到这里 的package 位置。
Unity和Android Studio 3.0 交互通讯



Unity和Android Studio 3.0 交互通讯



Unity和Android Studio 3.0 交互通讯


点击 update android SDK。等待读条结束,UNITY 后台程序。

Unity和Android Studio 3.0 交互通讯

在虚拟机 ,上 测试 APK

Unity和Android Studio 3.0 交互通讯

真机测试

如果是正常的,就会 进入 程序显示,made with unity

Unity和Android Studio 3.0 交互通讯

Unity和Android Studio 3.0 交互通讯--------------------------------------------------------------------

参考资料:

1.[自学总结] Unity调用 Android 接口实践与总结(Unity5.6 和 Eclipse 及 AndroidStudio2.3.1)

http://www.manew.com/thread-103445-1-1.html

2.[Unity][安卓]Unity和Android Studio 3.0 交互通讯(2)Unity 设置

http://blog.csdn.net/bulademian/article/details/78387470

3.Android Studio 与 Unity3d交互。归纳版。

http://blog.csdn.net/ldghd/article/details/54312532

4.Unity5与Android交互通信(使用Android Studio2.4) 详细操作一

http://m.blog.csdn.net/u010377179/article/details/53105062

-------------------------------------------------------------------------

使用 Build -- Make Project 或者 Build -- Rebuild Project 重新编译工程。
就把 上面 的 非原始  app工程 的   AndroidManifest.xml 复制粘贴到 如下图所示的  AndroidManifest.xml 位置。

相关文章: