当前位置: 首页 > news >正文

Unity与Android原生交互开发入门篇 - 打开Android的设置

目录

前言

Unity项目配置及准备

创建Android项目及配置

实现Android原生代码并导出到Unity

Unity调用Android原生插件

Unity打包Android APK运行


前言

        在 Unity 移动开发中,单纯依赖 C# 往往无法满足对系统能力的深度调用,比如相机、蓝牙、支付、地图、推送等功能。这就需要 Unity 与 Android 原生进行交互,通过插件桥接 Java 与 C#,实现更强的扩展能力。本系列将通过实战案例,带你掌握 Unity 与 Android 原生互通的完整流程。


Unity项目配置及准备

  • 将Unity的平台切换为Android平台。

  • 设置游戏的包名为com.unityleraning.unityandroidplugin。(也可根据自己需求定义)

  • 创建对应的Plugins文件夹,用来存放Android的原生交互插件。


创建Android项目及配置

  • 打开Android Studio(若没有则需先安装,https://developer.android.com/studio),点击New Project创建一个新项目。

  • 选择创建一个Empty Activity的项目。

  • 创建完成后,在项目左上角的File菜单选择创建一个新的New Module。

  • 选择创建Android Library,更改Package name为com.unitylearning.unityandroidplugin,编程语言选择Java,Minimum SDK可以选择27,点击Finish。

  • 创建一个Java类命名为UnityAndroidPlugin,用来和Unity进行交互。

  • 添加Unity的classes.jar到项目,因为需要用到Unity的API。创建一个libs文件夹,并将classes.jar文件放进去,classes.jar文件在你安装Unity的文件夹里面的AndroidPlayer文件夹下。并在UnityAndroidPlugin的Module中的build.gradle.kts文件里添加compileOnly关联Unity的classes.jar文件。


实现Android原生代码并导出到Unity

  • 在创建的UnityAndroidPlugin类里实现以下代码,用来打开系统的设置。通过使用UnityPlayer的currentActivity来进行调用。
public class UnityAndroidPlugin
{public static void OpenAndroidSettings() {Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);UnityPlayer.currentActivity.startActivity(intent);}
}
  • 设置UnityAndroidPlugin的Active Build Variant为release。

  • 点击Assemble Module 'UnityAndroidPlugin.UnityAndroidPlugin.main'导出aar文件。

  • 将生成的UnityAndroidPlugin的aar文件放到Unity项目中的Plugins/Android文件夹下。


Unity调用Android原生插件

  • 在Unity的场景中新建一个按钮用来打开Android的设置界面。

  • 创建一个UnityAndroidNativePlugin脚本,挂载到Canvas上面,并将打开设置的按钮对应关联起来。
public class UnityAndroidPlugin : MonoBehaviour
{private const string UnityAndroidPluginAndroidJavaClassName = "com.unitylearning.unityandroidplugin.UnityAndroidPlugin";private const string OpenAndroidSettingsMethodName = "OpenAndroidSettings";[SerializeField] private Button _openAndroidSettingsButton;private void OnEnable(){_openAndroidSettingsButton.onClick.AddListener(HandleOnOpenAndroidSettingsButtonClicked);}private void OnDisable(){_openAndroidSettingsButton.onClick.RemoveListener(HandleOnOpenAndroidSettingsButtonClicked);}private void HandleOnOpenAndroidSettingsButtonClicked(){OpenAndroidSettings();}private void OpenAndroidSettings(){using AndroidJavaClass androidJavaClass = new AndroidJavaClass(UnityAndroidPluginAndroidJavaClassName);androidJavaClass.CallStatic(OpenAndroidSettingsMethodName);}
}

Unity打包Android APK运行

  • 点击Build进行打包。

  • 打包完成后可以将APK安装到Android Studio的模拟器上进行测试。

  • 点击Open Settings按钮。

  • 此时就会从Unity的运行包跳转到系统的设置界面。

http://www.dtcms.com/a/568975.html

相关文章:

  • 如何查看Linux系统版本?
  • Python类和对象--生命周期方法(对象生命周期,内存管理机制-存储,垃圾回收)
  • PAIMON+STARROCKS 学习
  • *曲速引擎的核心思想
  • AI时代下医药项目管理效能提升与知识管理案例分享︱奥锐特药业研发中心主任庄守群
  • 路由器构建园区网
  • 陕西建设网站如何建立免费网站
  • 设计网站账号品牌策划公司广告语
  • 二十一、kubernetes 1.29 之 运维 03
  • 【论文精读】CMD:迈向高效视频生成的新范式
  • 技术实践 | 延趣游戏用户分层体系:基于TE系统实现精细化运营与流水增长
  • 【硬件SDK项目】uniapp框架设计与业务开发
  • 做推广必须知道的网站淮南网络建站公司
  • tcp 丢包分析
  • 基于改进Gerchberg–Saxton算法的全息图相位恢复方法研究
  • 【ISO8601】ISO8601 Rust 库完整学习指南
  • 辽宁沈阳做网站贷款公司网站模板
  • 【数论】乘法逆元(求逆元的三种方式)
  • c++ 引用包装器的用法
  • ArrayList数据结构-数组篇
  • 合肥建设工程信息网站网站pc端和手机端分离怎么做
  • 广州网站建设费上海手机网站
  • Memento:让大模型智能体“自己变聪明”,不用微调模型权重
  • Java中的设计模式------简单工厂设计模式
  • 记录:win10环境手动编译tcl源码过程
  • SQL Server集群网络详解:心跳IP与管理IP
  • k8s的包管理工具(4)--helm3子模板的使用
  • 【C++】关于list的使用底层实现
  • Ubuntu安装单节点MicroK8s
  • Ubuntu22.04单节点部署k8s(无需外网)