扩展 UnityPlayerActivity Java 代码

使用 Java 或 Kotlin 源文件作为插件

适用于 Android 的原生 (C++) 插件

Unity 支持用 C/C ++ 编写并封装在共享库 (.so) 或静态库 (.a) 中的 Android 原生插件。使用 IL2CPP 脚本后端时,可以使用 C/C++ 源文件作为插件,Unity 会将这些文件与 IL2CPP 生成的文件一起编译。这包括扩展名为 .c、.cc、.cpp 和 .h 的所有 C/C++ 源文件。

要构建适用于 Android 的 C++ 插件,请使用 Android NDK 并熟悉构建共享库所需的步骤。静态库也是如此。

如果使用 C++ 来实现该插件,必须确保使用 C 链接来声明方法以免发生名称错用问题。默认情况下,只有插件中具有 .c 文件扩展名的 C 源文件才具有 C 链接(不是 C++)。

extern "C" {

float Foopluginmethod ();

}

构建库后,将输出的 .so 文件复制到 Unity 项目的 Assets/Plugins/Android 目录中。在 Inspector 中,将 .so 文件标记为与 Android 兼容,并在下拉框中设置所需的 CPU 架构:

Inspector 窗口中显示的原生 (C++) 插件导入设置

要从 C# 脚本调用原生插件中的方法,请使用以下代码:

[DllImport ("pluginName")]

private static extern float Foopluginmethod();

请注意,pluginName 不应包含文件名的前缀(“lib”)和扩展名(“.so”)。建议使用额外的 C# 代码层包装所有的原生插件方法调用。此代码将检查 Application.platform 并仅当应用程序在实际设备上运行时才调用本机方法;在 Editor 中运行时,将从 C# 代码返回虚拟值。请使用平台定义来控制依赖于平台的代码编译。

在使用 C/C++ 源文件作为插件时,可以用相同的方式从 C# 调用这些文件,不同之处是插件名称使用 __Internal,例如:

[DllImport ("__Internal")]

private static extern float Foopluginmethod();

原生 (C++) 插件示例

AndroidNativePlugin.unitypackage zip 文件包含一个分发为 Unity 包的原生代码插件的简单示例。

该示例演示如何从 Unity 应用程序调用 C++ 代码。该包中包含的一个场景显示了由原生插件计算的两个值之和。要编译该插件,必须安装 Android NDK。

要安装该示例,请执行以下操作:

1.下载 zip 文件。

2.解压缩 AndroidNativePlugin.unitypackage 文件。

3.打开 Unity Editor。

4.创建一个新的项目。

5.在新项目中,单击 Assets > Import Package > Custom Package。

6.在 Import Package 文件对话框中,导航到解压缩文件的位置,然后选择该文件。

2018–12–21 页面已修订并进行了编辑审查

2018–03–10 页面已发布并只进行了有限的编辑审查

5.5 版中的更新功能

在 2018.2 版本中添加了使用 C++ 源文件和静态库作为 Android 插件的支持 NewIn20182

扩展 UnityPlayerActivity Java 代码

使用 Java 或 Kotlin 源文件作为插件

android原生插件,适用于 Android 的原生 (C++) 插件相关推荐

  1. win7 下载android源代码_适用于Android的30种最佳免费黑客应用程序和工具

    在本文中,我们将列出前30个Android黑客工具,以帮助完成网络和渗透测试任务. 适用于Android的30种最佳免费黑客应用程序和工具 NMap for Andr oid(NetworkMappe ...

  2. android 日历_适用于Android的十大最佳日历应用

    android 日历 Looking for the best calendar apps for Android? You're in the right place! Let's get righ ...

  3. android虚拟设备模拟,适用于Android虚拟设备(AVD)的NFC标记模拟

    谷歌从未在AVD中实现对NFC的支持. 所以在Android设备模拟器中没有官方支持NFC. 早在NFC在Android上,Inside Secure开发并发布了NFC堆栈"Open NFC ...

  4. android 性能测试工具下载,Android性能测试 一些适用于Android Studio的代码审查和性能测试工具...

    导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,由于QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进 ...

  5. vs android设备仿真器,适用于Android的Visual Studio模拟器 – 运行模拟设备需要内部虚拟网络交换机...

    问题 我想使用Visual Studio Emulator for Android,但每当我尝试启动它时都会失败. 日志的最后部分是: 27.9.2015. 11:10:38: [Informatio ...

  6. android 开源_适用于Android的12个开源游戏

    android 开源 智能手机使用户可以触手可及的丰富游戏,但是许多专有游戏中都充斥着广告,应用内购买以及其他功能,这些功能创造了不那么出色的游戏体验. 虽然开源世界并不是以其游戏质量而著称,但F-D ...

  7. Android运行jython,适用于Android的Jython

    不幸的是我在发布期间遇到了问题...我尝试在我的一个项目中导入所有库,并在方法onCreate of my activity中输入以下代码: PythonInterpreter interpreter ...

  8. 安卓studio_适用于Android Studio的17个顶级插件

    安卓studio Android Studio有数以百计的插件,并且每天都在增加. 这主要是由于两个原因. 首先是事实,Android Studio是业界公认的用于创建Android应用程序的集成ID ...

  9. 适用于 Android 的 Visual Studio 模拟器

    适用于 Android 的 Visual Studio 模拟器 https://visualstudio.microsoft.com/zh-hans/vs/msft-android-emulator/ ...

最新文章

  1. lambda java_Java Lambdas简介
  2. Eclipse External Tool Configration Notepad++
  3. scara机器人本体介绍
  4. 两种实现大图内容平移效果的方法
  5. pybind11用python调用C++代码
  6. 关于FND_PROFILE与FND_GLOBLE[Z]
  7. 北京的程序猿们,今年过年去哪玩?
  8. ubuntu搭建php运行环境
  9. 流水线扫描条码自动分拣方案
  10. ​​​​​​​排列组合基本原理及公式
  11. Maven-3.maven知识点
  12. jude(java建模软件)_JUDE电脑版下载|
  13. linux sysctl常见用法
  14. c# 扫描局域网IP列表的几种方法
  15. C++ 内联函数/宏/outo/for/nullptr
  16. 基于Quartus II 软件(VHDL)设计
  17. 孙子定理(中国剩余定理)
  18. 《UML和模式应用》读书笔记
  19. mysql安装完为什么打不开_mysql安装打不开怎么办
  20. 【ProVerif学习笔记】6:握手协议(handshake protocol)建模

热门文章

  1. linux 代码行数统计利器 ——cloc
  2. 从贝叶斯模型(Bayes)到生成模型(Generative models)(生成式分类器,generative classifier)
  3. 负数的移位、有符号数的移位转换为无符号数的移位
  4. ubuntu 的使用
  5. 【笔试/面试】—— linux 拾遗(一)
  6. uBLAS——Boost 线性代数基础程序库
  7. 手机上有没有学python的软件-盘点几个在手机上可以用来学习编程的软件
  8. python教程2019全套-如何领取Python2019 全套视频教程
  9. 0基础学python有多难-0基础学Python有多难?
  10. python画直方图-python plotly绘制直方图实例详解