这几天在网上自学了一下AndroidStudio的用法,也是遇到了不少坑、走了不少弯路。在参考了各种各样的资料以后,算是对这个有了一个初步的认识。故整理一下,方便自己以后看,也希望给其他人作为参考。
图比较多,尽量步骤详细一些
这里,我的U3D版本是2018.3.5,AndroidStudio版本分别为3.0和3.5.
关于JDK的安装与设置,网上应该有不少的教程。


一、AndroidStudio的下载:



AndroidStudio在官网即可下载 http://www.android-studio.org/(首页就是3.5)


3.0的在这儿 http://www.android-studio.org/index.php/download/hisversion


Android 游戏3D效果 安卓3do_3d



二、AndroidStudio的安装(3.5版本):



下载完以后一路Next,没什么要注意的。然后直接启动( 安装完以后并不在桌面生成快捷方式,如果你是默认的路径安装的话,就是 C:\Program Files\Android\Android Studio\bin 找到studio64.exe。直接发送桌面即可。)


安装完以后就可以配置SDK了。


Android 游戏3D效果 安卓3do_Android 游戏3D效果_02


Android 游戏3D效果 安卓3do_3d_03


Android 游戏3D效果 安卓3do_Android_04


Android 游戏3D效果 安卓3do_unity_05


Android 游戏3D效果 安卓3do_android studio_06


(实际上那么多我也不知道哪些有用哪些没用,也可能这些东西有不需要的,有错误的话还望指出)


然后就点击ok慢慢的下载。


等下载完了就可以新建个工程了。


Android 游戏3D效果 安卓3do_Android_07



三、使用AndroidStudio:



1,新建工程选择EmptyActivity,然后Next


Android 游戏3D效果 安卓3do_Android 游戏3D效果_08


Android 游戏3D效果 安卓3do_Android 游戏3D效果_09


Android 游戏3D效果 安卓3do_unity_10


最后点击Finish,等待完成编译。


2, 编译完成以后,可能下面会报错gradle失败的错误。关于这个可以参考

。我是用最后的方法成功的。

这个就是成功后的界面。下面不报错。

Android 游戏3D效果 安卓3do_unity_11

3,然后就是新建个module

Android 游戏3D效果 安卓3do_android studio_12


Android 游戏3D效果 安卓3do_3d_13


Android 游戏3D效果 安卓3do_android studio_14

4,选择工程视图,在mylibrary(model的名字)——libs添加一个文件

Android 游戏3D效果 安卓3do_Android_15


打开路径为C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes,找到classes.jar文件,复制到上面提到的libs目录中

Android 游戏3D效果 安卓3do_3d_16


如果还找不到的话,右键单击u3d图标,属性——打开文件夹所在位置,找到Data文件夹后,就可以通过链接找到了。

Android 游戏3D效果 安卓3do_unity_17


(按住Ctrl,拖到libs文件夹即可完成复制)

Android 游戏3D效果 安卓3do_Android 游戏3D效果_18

最后点击ok。成功的话下面就是展开的状态

Android 游戏3D效果 安卓3do_Android 游戏3D效果_19


5,返回安卓视图,找到com.company.myapplication(你的module名)

Android 游戏3D效果 安卓3do_Android 游戏3D效果_20


然后右键,新建个activity

Android 游戏3D效果 安卓3do_3d_21


Android 游戏3D效果 安卓3do_3d_22


然后就生成了一个MinActivity

Android 游戏3D效果 安卓3do_unity_23


三、代码的修改:


首先先修改MainActivity的代码

1,先注释掉setContentView(R.layout.activity_main);

Android 游戏3D效果 安卓3do_Android_24


然后再修改代码至下图

Android 游戏3D效果 安卓3do_unity_25


package com.company.myapplication;

import android.os.Bundle;

import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //下面这行先注释掉
       // setContentView(R.layout.activity_main);
    }
    public  int add(int a,int b)
    {
        UnityPlayer.UnitySendMessage("Text","ChangeColor","");
        return a+b;
    }
}

2,找到Android视图下app——mainfests——AndroidMainfest.xml,文件,复制里面的代码

Android 游戏3D效果 安卓3do_unity_26


然后粘贴到mylibrary下mainfests——AndroidMainfest.xml

Android 游戏3D效果 安卓3do_3d_27

删去报错的地方,并且修改android:label的名字

这个是你打包后apk的名字

Android 游戏3D效果 安卓3do_Android_28

然后再在和/activity>之间添加 ,再注意在 MainActivity 改成自己的包名(这个网上有的改有的没改,这里按改的走)

Android 游戏3D效果 安卓3do_android studio_29


四、导出成arr包:


(网上有的是选择文件夹build,有的是直接build,好像选不选都能build出)


Android 游戏3D效果 安卓3do_Android 游戏3D效果_30


1,返回project视图,找到mylibrary-debug.arr的文件路径:MyApplication-mylibrary-build-outputs-arr-mylibrary-debug.arr

Android 游戏3D效果 安卓3do_Android 游戏3D效果_31


右键——Show in Explorer,打开文件路径

Android 游戏3D效果 安卓3do_android studio_32


Android 游戏3D效果 安卓3do_unity_33


2,修改arr的后缀名为zpi或rar,打开。

Android 游戏3D效果 安卓3do_3d_34


然后再拖到压缩文件的目录下,并且删除

Android 游戏3D效果 安卓3do_Android_35


我这里通过Sbulime打开,稍微修改一下里面的数据

Android 游戏3D效果 安卓3do_Android_36


Android 游戏3D效果 安卓3do_Android 游戏3D效果_37


最后再改回成aar格式,拖到桌面

Android 游戏3D效果 安卓3do_unity_38


五、和Unity通信:


1,先在Asset下创建文件夹Plugins——Android

Android 游戏3D效果 安卓3do_3d_39


2,然后把桌面上的文件拖到这Android目录下

Android 游戏3D效果 安卓3do_3d_40


创建U3d脚本(这里原来就已经设置好了),创建如下脚本

Android 游戏3D效果 安卓3do_android studio_41


```csharp
using UnityEngine;
using UnityEngine.UI;

public class TmpText : MonoBehaviour
{
    public Text tmpText;
    AndroidJavaObject jo;
    // Use this for initialization
    void Start()
    {
        tmpText = GetComponent<Text>();
        //获得位于com.unity3d.player包下的UnityPlayer类
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        //获得jc所代表的类下的currentActivity对象
        jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        //调用java中的方法,即3+5
        tmpText.text = jo.Call<int>("add", 3, 5).ToString();

        ChangeColor();
    }

    void ChangeColor()
    {
        tmpText.color = Color.red;//将Text的颜色改成红色
    }

    void Update()
    {

    }

}

3,创建一些u3d对象并且把脚本挂载在text组件上

Android 游戏3D效果 安卓3do_unity_42


4,最后打成apk(保存路径不能有中文)

Android 游戏3D效果 安卓3do_Android 游戏3D效果_43


六、最后验证:


这里我用雷电模拟器做演示

Android 游戏3D效果 安卓3do_Android_44


最后的展示结果:

Android 游戏3D效果 安卓3do_android studio_45


结果为8,并且字体颜色为红色


----我是一只分割线------

踩了好几天的坑终于踩完了,累死了-.-,没人教的话只是靠网上查资料对我来说确实不容易。实际上不止是加法,四则运算都可以,不过应该还得重新build然后再重新生成apk,比较麻烦。这是很简单的一些调用,网上还有一些复杂的,实际上步骤都是差不多的,各位这个学会以后可以参考着其他的弄

3.0的步骤和这个大差不大,不过3.0没有用arr包
第一次写博客,算是给自己插个眼,也没打算长期更,主要是方便自己的一些查看什么的。如果觉得对你有帮助的话那就更好了