Unity Android Studio 混合开发整理(Unity 嵌入Android Studio 中) 您所在的位置:网站首页 apk与数据包整合 Unity Android Studio 混合开发整理(Unity 嵌入Android Studio 中)

Unity Android Studio 混合开发整理(Unity 嵌入Android Studio 中)

2023-08-11 06:47| 来源: 网络整理| 查看: 265

Unity Android Studio 混合开发整理(Unity 嵌入Android Studio 中)

 

目录

Unity Android Studio 混合开发整理(Unity 嵌入Android Studio 中)

Unity 和 Android 混合开发大致分为以下两大类:

案例测试环境:

一、Unity 工程导出, 整个工程作为 Android 工程 Import Project 进 Android studio,编译运行

二、在 Android Studio 原有的工程上导入Unity工程,Android Studio 的 MainActivity 为主界面,UnityActivity 为跳转界面

三、基于上面的案例,把 UnityActivity 嵌入到 Android Studio 布局中,作为布局的一部分

 

由于 Unity 版本 的更新,所以可能老版本可以正常运行的,新版本就会有其他报错闪退现象等,下面是更新的新博文,有兴趣的可以参考指点下

Unity Android Studio 混合开发整理 - 附有详细操作步骤(Unity 2019.3 + 嵌入 Android Studio 4. + 应用中)

 

Unity 和 Android 混合开发大致分为以下两大类:

1)Unity做好项目之后导出为Android Studio项目,导入到Android Studio中进行之后的功能开发。最后由Android Studio打包APK。即Unity辅助Android开发(Android开发为主),对Android技能要求较高。            2)Android Sutido做好项目导出jar或aar包,导入到Unity中作为Unity的插件使用,最后由Unity打包APK。即Android辅助Unity开发(Unity开发为主),对Unity技能要求较高。

注意:Unity打包APK时,调用安卓SDK,把所有游戏内容整合打包出的APK中只有一个MainActivity。

 

案例测试环境:

          Unity: 2018.3.7

          Android Studio:3.3

 

 

一、Unity 工程导出, 整个工程作为 Android 工程 Import Project 进 Android studio,编译运行

1)打开Unity,新建一个空工程,在场景中添加一个 Cube ,并添加旋转动画,然后添加一个 Toggle 按钮,点击显示或隐藏 Cube,具体如下图

2)切换为 Android 平台, 勾选 Export Project ,然后 Player Settings 设置,尤其是包名,设置好后, 就可以 Export 导出工程,具体如下图

 

3)导出后的 Unity 工程,了解 Android Studio 工程的,可以看得出差不多与之差不多,具体如下图

4)然后打开 Android Studio,选择 File - New - Import Project,选择之前导出的 Unity 工程,把它倒入 Android Studio,具体如下图

5)其实也不用什么设置,选择合适的虚拟机(如有提示,根据提示操作即可),编译运行,具体如下图

 

6)运行的结果,跟 Unity 打包的 APK 一样,Cube正常旋转,点击 Toggle 也能正常显示或者隐藏,具体如下图

 

二、在 Android Studio 原有的工程上导入Unity工程,Android Studio 的 MainActivity 为主界面,UnityActivity 为跳转界面

1)打开 Android Studio ,新建一个工程,新建一个 Empty Activity,具体如下图,注意包名以导出的 Unity 工程的包名一致

2)把 Unity导出的工程的文件,对应添加到新建的 Android 工程,包括 unity-class.jar,assets文件夹,和 jniLibs 文件夹,具体如下图

3)在 MainActivity.java 脚本中添加一个按钮,并且绑定按钮事件,点击跳转到 UnityActivity;新建TestUnityActivity.java,显示UnityActivity界面(注意:继承 UnityPlayerActivity),并监听返回键事件返回到MainActivity;MainActivity 布局文件等 具体如下图

4)MainActivity.java ,TestUnityActivityjava,AndroidManifest.xml,以及activity_main.xml 具体内容如下:

package com.xan.testprojectforandroid; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import com.unity3d.player.UnityPlayerActivity; public class TestUnityActivity extends UnityPlayerActivity { @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); } @Override public boolean onKeyDown(int i, KeyEvent keyEvent) { // 添加返回键返回 MainActivity if(i == KeyEvent.KEYCODE_BACK){ Intent intent = new Intent(this, MainActivity.class); startActivity(intent); finish(); } return super.onKeyDown(i, keyEvent); } } package com.xan.testprojectforandroid; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view){ // 点击跳转到 UnityActivity Intent intent = new Intent(this, TestUnityActivity.class); startActivity(intent); } }

5)选择合适的虚拟机(如有提示,根据提示操作即可),编译运行,具体如下图

6)运行的结果,首先是MainActivity界面,点击“跳转”,跳转到UnityActivity 界面,Cube正常旋转,点击 Toggle 也能正常显示或者隐藏,返回按钮,即可返回 MainActivity,具体如下图

 

 

三、基于上面的案例,把 UnityActivity 嵌入到 Android Studio 布局中,作为布局的一部分

1)添加新的布局文件 activity_unity.xml,这里只在布局中添加一个测试按钮(大家可以根据需要添加修改),具体如下图

2)activity_unity.xml 具体内容如下:

3)TestUnityActivity.java 添加显示布局内容,并获取 UnityActivity 的 view 显示在 线性布局上,并给按钮绑定事件返回 MainActivity,具体如下图

4)TestUnityActivity.java 脚本具体内容如下:

package com.xan.testprojectforandroid; import android.content.Intent; import android.os.Bundle; import android.text.Layout; import android.view.KeyEvent; import android.view.View; import android.widget.LinearLayout; import com.unity3d.player.UnityPlayerActivity; public class TestUnityActivity extends UnityPlayerActivity { @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.activity_unity); LinearLayout ll_unity_container = findViewById(R.id.ll_unity_container); View unity_view = mUnityPlayer.getView(); ll_unity_container.addView(unity_view); } public void click(View view){ callMainActivity(); } @Override public boolean onKeyDown(int i, KeyEvent keyEvent) { // 添加返回键返回 MainActivity if(i == KeyEvent.KEYCODE_BACK){ callMainActivity(); } return super.onKeyDown(i, keyEvent); } private void callMainActivity(){ Intent intent = new Intent(this, MainActivity.class); startActivity(intent); finish(); } }

5)选择合适的虚拟机(如有提示,根据提示操作即可),编译运行,具体如下图

6)运行的结果,首先是MainActivity界面,点击“跳转”,跳转到UnityActivity 界面,Cube正常旋转,点击 Toggle 也能正常显示或者隐藏,点击 “返回”,返回 MainActivity,具体如下图

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有