赞
踩
个人搞Unity,对Android不是很熟悉,实现这个功能遇到很多问题特此记录一下。
我这里用的是Android Studio2021.2.1.15,Unity是2019.4.17
jdk是1.8,androidsdk就准备的版本比较多
目录
大佬文章: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一下,如果没错就下一步。
我导入这个报错
删除intent-filter标签的内容
在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下添加
<activity android:name=".UnityActivity"></activity>
⑦在app的build.gradle中添加下面这句
⑧
其次在app的main->res->values->strings.xml里加入这行代码。
<string name="game_view_content_description">Game view</string>
⑨然后Build就好了。
PS:后续想再总结一篇安卓和Unity通信的,看缘分。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。