android原生插件,适用于 Android 的原生 (C++) 插件
扩展 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++) 插件相关推荐
- win7 下载android源代码_适用于Android的30种最佳免费黑客应用程序和工具
在本文中,我们将列出前30个Android黑客工具,以帮助完成网络和渗透测试任务. 适用于Android的30种最佳免费黑客应用程序和工具 NMap for Andr oid(NetworkMappe ...
- android 日历_适用于Android的十大最佳日历应用
android 日历 Looking for the best calendar apps for Android? You're in the right place! Let's get righ ...
- android虚拟设备模拟,适用于Android虚拟设备(AVD)的NFC标记模拟
谷歌从未在AVD中实现对NFC的支持. 所以在Android设备模拟器中没有官方支持NFC. 早在NFC在Android上,Inside Secure开发并发布了NFC堆栈"Open NFC ...
- android 性能测试工具下载,Android性能测试 一些适用于Android Studio的代码审查和性能测试工具...
导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,由于QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进 ...
- vs android设备仿真器,适用于Android的Visual Studio模拟器 – 运行模拟设备需要内部虚拟网络交换机...
问题 我想使用Visual Studio Emulator for Android,但每当我尝试启动它时都会失败. 日志的最后部分是: 27.9.2015. 11:10:38: [Informatio ...
- android 开源_适用于Android的12个开源游戏
android 开源 智能手机使用户可以触手可及的丰富游戏,但是许多专有游戏中都充斥着广告,应用内购买以及其他功能,这些功能创造了不那么出色的游戏体验. 虽然开源世界并不是以其游戏质量而著称,但F-D ...
- Android运行jython,适用于Android的Jython
不幸的是我在发布期间遇到了问题...我尝试在我的一个项目中导入所有库,并在方法onCreate of my activity中输入以下代码: PythonInterpreter interpreter ...
- 安卓studio_适用于Android Studio的17个顶级插件
安卓studio Android Studio有数以百计的插件,并且每天都在增加. 这主要是由于两个原因. 首先是事实,Android Studio是业界公认的用于创建Android应用程序的集成ID ...
- 适用于 Android 的 Visual Studio 模拟器
适用于 Android 的 Visual Studio 模拟器 https://visualstudio.microsoft.com/zh-hans/vs/msft-android-emulator/ ...
最新文章
- lambda java_Java Lambdas简介
- Eclipse External Tool Configration Notepad++
- scara机器人本体介绍
- 两种实现大图内容平移效果的方法
- pybind11用python调用C++代码
- 关于FND_PROFILE与FND_GLOBLE[Z]
- 北京的程序猿们,今年过年去哪玩?
- ubuntu搭建php运行环境
- 流水线扫描条码自动分拣方案
- ​​​​​​​排列组合基本原理及公式
- Maven-3.maven知识点
- jude(java建模软件)_JUDE电脑版下载|
- linux sysctl常见用法
- c# 扫描局域网IP列表的几种方法
- C++ 内联函数/宏/outo/for/nullptr
- 基于Quartus II 软件(VHDL)设计
- 孙子定理(中国剩余定理)
- 《UML和模式应用》读书笔记
- mysql安装完为什么打不开_mysql安装打不开怎么办
- 【ProVerif学习笔记】6:握手协议(handshake protocol)建模
热门文章
- linux 代码行数统计利器 ——cloc
- 从贝叶斯模型(Bayes)到生成模型(Generative models)(生成式分类器,generative classifier)
- 负数的移位、有符号数的移位转换为无符号数的移位
- ubuntu 的使用
- 【笔试/面试】—— linux 拾遗(一)
- uBLAS——Boost 线性代数基础程序库
- 手机上有没有学python的软件-盘点几个在手机上可以用来学习编程的软件
- python教程2019全套-如何领取Python2019 全套视频教程
- 0基础学python有多难-0基础学Python有多难?
- python画直方图-python plotly绘制直方图实例详解