Android Studio准备
Android Studio工程
配置Gradle路径
打开Android Studio,选择Customize选项,然后点击All settings
在弹出的界面选择Build,Execution,Deployment——Build Tools——Gradle,设置Gradle的位置
建立对应项目
打开Android Studio,点击“New Project”,在弹出的页面点击“Base Views Activity”,然后再在弹出的页面输入:
注意:包名一定要和Unity工程相同
新建项目后,会耗费大量的时间下载Gradle,可以使用腾讯的镜像来快速下载:
将项目的gradle——wrapper——gradle-wrapper .properties文件修改:
1
2
3
4
5 distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.0-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists然后重启项目,等待下载完成。
Android Studio快捷键
Ctrl + Y:删除一行
Shift + Alt + 上下方向:移动一行
/**
加回车:在方法上添加说明文字
Android Studio界面
Project窗口
在界面左侧的Project窗口有很多模式,常用的是Project和Android模式。前者能够显示工程内所有文件,后者只根据不同的类来显示文件。
App的入口脚本位置:ResLoadPrg——app——src——main——java——com.DefaultCompany.ResLoadPrg——MainActivity
由于我们使用的是“Base Views Activity”模板,所以我们必须要修改一下
MainActivity
,让它变成一个空工程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package com.DefaultCompany.ResLoadPrg;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}修改成上图这样,其余的代码删掉。
如果
com.DefaultCompany.ResLoadPrg
文件夹内还有其他的java代码文件,都删掉,只保留MainActivity
jar和aar
安卓各个平台的接入流程是:
- 在Android Studio环境下接入各个平台的SDK,写好和Unity交互的类
- 将Android的代码工程导出为jar包
- Unity导入jar包和相关平台的依赖库(libs),最终由Unity导出为apk
jar包的主要内容就是纯安卓工程的代码,而arr包除了代码还包含资源和其他的依赖库。两种资源Unity都能使用,但是一般我们导出的只有jar包,防止arr包再接入其他SDK时出现问题。
使用jar包时要明确此jar包依赖的资源和库,否则在Unity打出来的包会无法运行。
生成jar
修改ResLoadPrg——app——build.gradle,修改plugins代码块和defaultConfig代码块,以及dependencies代码块(按照下面修改的同时将dependencies多余的部分删除)
1 | plugins { |
此时点击菜单栏的“Build——ReBuild Project”,然后在build——intermediates——arr_main_jar——debug——classes.jar
就是我们生成的jar包了。
拓展
我们可以使用终端,将生成的jar包单独提取出来。
修改build.gradle,在它的最后加
1 | task makeJar(type:Copy){ |
顾名思义,这就是将classe.jar复制到build/libs/
,并重命名为atao.jar
想要使用它,我们需要先修改一下Android Studio的设置,在菜单栏File——Settings打开设置窗口,然后点击Tools——Terminal,将Shell Parh改为“C:\WIndows\system32\cmd.exe
”。
然后点击Android Studio底部的“Terminal”工具选项按钮,在打开的窗口中输入
1 | E:\AndroidStudioProjects\ResLoadPrg>gradlew makejar |
经测试,当我们使用gradle8.0时,它不能在Java8环境下启动上面的操作,所以这里只做记录了,如果想要成功运行,需要安装新的JDK。
另外,如果没有配置Gradle环境变量,系统可能会将gradle再次下载到C盘里,这里贴一个Gradle环境变量的设置。仅供参考。
添加系统变量:
1
2 变量名:GRADLE_HOME
变量值:E:\Gradle\wrapper\dists\gradle-8.0-all\a878bwjjv9e3gkwe16laniiuj\gradle-8.0添加系统变量Path,添加一个Path:
1 %GRADLE_HOME%\bin所以目前,我们直接拷贝
build——intermediates——arr_main_jar——debug——classes.jar
里面的jar包
对接Unity的准备
删除layout
首先,进入app——src——main——res——layout文件夹,将内部的xml文件全部删除。如果有弹窗,选择“Delete Anyway”
此时MainActivity.java
会有报错,将setContentView(R.layout.activity_main);
一行删掉即可,快捷键Ctrl + Y
导入Unity的jar
进入我们的UnityEditor安装目录,找到classes.jar,这里贴个路径供参考
D:\Program FIles\Unity Editor\2021.3.22f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Development\Classes\classes.jar
Unity的mono和il2cpp都有自己的jar包,而且每个脚本后端的jar包都有Development版和Release版。根据自己的需要找一个就可以。
将这个jar包复制粘贴到安卓工程的app——libs文件夹里,并在弹窗中点击“ReFactor”或“OK”,并将”classes.jar”包改名为”unityclasses.jar”
此时如果编辑器窗口有提示(一行蓝条),点击右侧的sync;
如果没有,点击:File——Project Structure,点击左侧Dependencies,然后点击Modules里面的app,然后在右侧点击加号选择“AAR/JAR Dependency”,然后再在弹出的窗口的“Step1”里面输入
libs\unityclasses.jar
,点击OK确定即可
然后再次进入UnityEditor安装目录,找到UnityPlayerActivity.java,这里贴个路径供参考
D:\Program FIles\Unity Editor\2021.3.22f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player\UnityPlayerActivity.java
将这个java代码文件复制粘贴到安卓工程的app——src——main——java——com.DefaultCompany.ResLoadPrg内,弹出的窗口点击OK即可。
修改MainActivity
修改MainActivity
代码文件
1 | package com.DefaultCompany.ResLoadPrg; |