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


    [安卓]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 来查看


    建立 新的工程。





     

    点击 FINISH 按钮,新建工程。






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



    按 esc 按键 退出 find in path。

    打开文件路径。



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

    D:Program FilesUnityEditorDataPlaybackEnginesAndroidPlayerVariationsmonoReleaseClasses

    classes.jar

    复制粘贴 到

    E:AndroidAndroidStudioProjectsUnityTestapplibs

    文件夹,如下图所示。








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





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

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





    删除

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


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



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



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


    后来发现 是 unity_exchage 的 MainActivity




    import com.unity3d.player.UnityPlayerActivity;


    这个时候,如下所示。


    改为如下所示。




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

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



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



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



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

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



    右键 debug 文件夹,show in explorer


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




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


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



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

    Plugins/Android/







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




    新建脚本,挂载 上 Main Camera 上。



        using System.Collections;
        using System.Collections.Generic;
        using UnityEngine;
        using UnityEngine.UI;//使用 该引用,才能获得 Text 组件。
         
        public class Android_Test : MonoBehaviour {
         
            private Transform canvasTras;//UGUI的Canvas
            private Text text;//用来显示 界面的文本
            private Button btn;//前端的按钮
         
            private AndroidJavaObject jo = null;
         
         
         
            // Use this for initialization
            void Start () {
                //固定写法
                AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
                jo = jc.GetStatic<AndroidJavaObject>("currentActivity");//获取当前Activity对象,即Android中的MainActivity
         
                canvasTras = GameObject.Find("Canvas").transform;
                text = canvasTras.Find("Text").GetComponent<Text>();
                btn = canvasTras.Find("Button").GetComponent<Button>();
                btn.onClick.AddListener(Click);//按钮点击事件监听下面的Click()方法
         
            }
         
            //这个方法是在界面点击按钮的时候调用,使用的是UGUI的BUTTON组件
            public void Click()
            {
                text.text = "";//点击的时候先清空
                int res = jo.Call<int>("add", 56, 100);//调用Android中的方法,"add"为方法名字,56,100,分别是想加的参数
                text.text = "56 + 100的结果是:" + res.ToString();//显示前端
            }
        }


    在 Unity 的 GameObject -- UI 新建 Text 和 Button


    布局如下所示




    复制 package 的名字


    粘贴到这里 的package 位置。








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





    在虚拟机 ,上 测试 APK



    真机测试

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





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

    参考资料:

    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

    5.

    6.

    7.





    ---------------------
    作者:BuladeMian
    来源:CSDN
    原文:https://blog.csdn.net/bulademian/article/details/78387461
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    appfabric cache配置,实验记录
    appfabric cache存储ef 查询结果的bug
    CruiseControl.NET svn获取 自动编译 ftp上传
    @Ajax.RenderAction 把局部页改为ajax加载
    分布式架构下的mvc 异步controller ajax comet 长连接
    win7重装iis,搞死
    验证码识别的基本思路及方法
    C# 获取程序当前文件夹
    在c#中 限制文本框只能输入数字
    string字符串 获取指定位置范围的子字符串
  • 原文地址:https://www.cnblogs.com/mrray/p/10535266.html
Copyright © 2020-2023  润新知