个人搞Unity,对Android不是很熟悉,实现这个功能遇到很多问题特此记录一下。
我这里用的是Android Studio2021.2.1.15,Unity是2019.4.17
jdk是1.8,androidsdk就准备的版本比较多
目录
一、参考文档
二、原理说明
三、初步演示
四、具体步骤
1.Unity工程导出
2.AndroidStudio配置
大佬文章:AndroidStudio接入Unity工程并实现相互跳转的示例代码 - H5W3
unity项目导入到android studio_千丘星的博客-CSDN博客_android studio unity
Unity论坛1:Integration Unity as a library in native Android app Version 2 - Unity Forum
Unity论坛2:Using Unity as a library in native iOS/Android apps - Unity Forum
1.将Unity工程整个导出作为Android程序的一个模块进行嵌入。
2.Android程序通过一个Activity窗口全屏渲染Unity程序。
①构建一点界面功能方便后续测试,我这里就只弄了两个按钮互相显示隐藏(测试的话,我就直接拖动事件绑定的)。
②【File】->【BuildSetting】切换打包平台为安卓平台
切换完成后勾选【Export Project】
③点击上图的【Player Setting】->【Other Setting】
将Scripting Backend改为IL2CPP
Minimun API Level:可自定义版本,但是得与Android Studio工程
④点击【File】->【Player Setting】->【Export】导出工程
①新建Android工程
注:一定要注意这个MinimunSDK要与之前Unity程序打包的版本一致。
②把Unity打包的工程作为Android项目的Module导入
导入之后,Clean Build和Rebuild一下,如果没错就下一步。
我导入这个报错
在Active标签中 添加android:exported=“false”
③配置unityLibrary作为app的Module
在项目的Dependencies为app添加unityLibrary作为api添加
④创建UnityActivity.java作为Unity程序的显示窗口
import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;
public class UnityActivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
⑤修改app原来的MainActivity
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转到Unity界面
Intent intent=new Intent(MainActivity.this,UnityActivity.class);
startActivity(intent);
}
});
}
}
并且为MainActivity的activity_main添加一个按钮(可以Ctrl+鼠标左键【R.layout.activity_main】直接跳转设置) 或者去app/src/main/res/layout找到修改
⑥在app的AndroidMainfest.xml添加项目那句
tools:replace="android:theme,android:label,android:icon"
并在原有Activity下添加
⑦在app的build.gradle中添加下面这句
⑧
其次在app的main->res->values->strings.xml里加入这行代码。
Game view
⑨然后Build就好了。
PS:后续想再总结一篇安卓和Unity通信的,看缘分。