当前位置:   article > 正文

Unity嵌入Android(Unity Android Studio混合开发)_unity安卓export

unity安卓export

案例测试环境:

          Unity: 2020.1.7

          Android Studio:4.1

1.创建工程

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

3.导出后的 Unity 工程,具体如下图

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

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

注意:将unity-class.jar添加进去记得右键unity-class.jar 选择Add as Library

继续导入其它资源

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

添加返回主界面的方法

 给按钮绑定点击事件

Unity界面注册进去

 运行结果

注意:打开闪退解决方案

注意:Android无法找到Unity: Failed to load 'libmain.so'

(修改配置文件是app目录下的build.gradle)

7.具体代码如下

MainActivity.java

  1. package com.hy.testdemo;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import com.unity3d.player.UnityPlayer;
  7. public class MainActivity extends AppCompatActivity {
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. }
  13. public void ButtonClick(View view)
  14. {
  15. Intent intent=new Intent(this,TestUnityActivity.class);
  16. startActivity(intent);
  17. }
  18. }

TestUnityActivity.java

  1. package com.hy.testdemo;
  2. import android.content.Intent;
  3. import android.os.Bundle;
  4. import android.view.KeyEvent;
  5. public class TestUnityActivity extends UnityPlayerActivity {
  6. @Override
  7. protected void onCreate(Bundle bundle) {
  8. super.onCreate(bundle);
  9. }
  10. public boolean onKeyDown(int i, KeyEvent keyEvent)
  11. {
  12. if(i==KeyEvent.KEYCODE_BACK)
  13. {
  14. Intent intent=new Intent(this,MainActivity.class);
  15. startActivity(intent);
  16. finish();
  17. }
  18. return super.onKeyDown(i,keyEvent);
  19. }
  20. }

 activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".MainActivity">
  8. <Button
  9. android:id="@+id/button"
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:layout_marginStart="159dp"
  13. android:layout_marginTop="341dp"
  14. android:layout_marginEnd="159dp"
  15. android:layout_marginBottom="342dp"
  16. android:onClick="ButtonClick"
  17. android:text="测试"
  18. app:layout_constraintBottom_toBottomOf="parent"
  19. app:layout_constraintEnd_toEndOf="parent"
  20. app:layout_constraintStart_toStartOf="parent"
  21. app:layout_constraintTop_toTopOf="parent" />
  22. </androidx.constraintlayout.widget.ConstraintLayout>

 AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.hy.testdemo">
  4. <application
  5. android:allowBackup="true"
  6. android:icon="@mipmap/ic_launcher"
  7. android:label="@string/app_name"
  8. android:roundIcon="@mipmap/ic_launcher_round"
  9. android:supportsRtl="true"
  10. android:theme="@style/Theme.Testdemo">
  11. <activity android:name=".MainActivity">
  12. <intent-filter>
  13. <action android:name="android.intent.action.MAIN" />
  14. <category android:name="android.intent.category.LAUNCHER" />
  15. </intent-filter>
  16. </activity>
  17. <activity android:name=".TestUnityActivity"></activity>
  18. </application>
  19. </manifest>

strings.xml

  1. <resources>
  2. <string name="app_name">testdemo</string>
  3. <string name="game_view_content_description">Game view</string>
  4. </resources>

build.gradle

  1. defaultConfig {
  2. ndk {
  3. abiFilters 'armeabi-v7a', 'x86'
  4. }
  5. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/111239
推荐阅读
相关标签
  

闽ICP备14008679号