Unity Android平台发布及原理(IL2CPP)
/ Unity Android 应用的启动入口和 JNI 桥梁,负责连接 Android Java 层与 Unity C++ 运行时的初始化和通信。unityLibrary/src/main/Il2CppOutputProject/Source/il2cppOutput cpp文件变化如下。Unity 使用 IL2CPP 脚本后端时,将 C# 游戏代码转换为 C++ 并编译成的原生库,负责执行所有
0.Unity 版本:
2022.3.62f2
1.IL2CPP、Mono的区别
项目配置:Unity -> Project Settings -> Android 平台 -> Configuration -> Scripting Backend 修改为IL2CPP

2. 导出项目
Unity -> Build Settings -> Export Project 复选框 -> 点击 Export

2.1 以 IL2CPP 导出项目的目录结构
build.gradle
gradle
----wrapper
--------gradle-wrapper.properties
gradle.properties
launcher
----src
----build.gradle
--------main
------------res
------------AndroidManifest.xml
local.properties
settings.gradle
unityLibrary
----symbols
----proguard-unity.txt
----libs
----src
--------main
------------resources
------------res //icon 等配置资源
------------jniStaticLibs
----------------armeabi-v7a //各种.a
------------jniLibs
----------------armeabi-v7a
--------------------libunity.so // Unity 引擎在 Android 平台的核心原生实现,承载着渲染、物理、资源管理等所有引擎基础功能
--------------------libmain.so // Unity Android 应用的启动入口和 JNI 桥梁,负责连接 Android Java 层与 Unity C++ 运行时的初始化和通信
--------------------libil2cpp.so // Unity 使用 IL2CPP 脚本后端时,将 C# 游戏代码转换为 C++ 并编译成的原生库,负责执行所有游戏逻辑的运行时环境。
-
你的所有游戏代码(从 C# 编译而来)
-
IL2CPP 运行时环境
-
垃圾回收器(GC)
-
类型系统和方法调用机制
-
与 libunity.so 交互的接口
------------java
----------------com->unity3d->player->UnityPlayerActivity.java // 主Activity
------------Il2CppOutputProject //包含从托管程序集转换的所生成的 C++ 代码,里面包含启动程序的C# 代码等等
----------------Source
----------------IL2CPP
------------assets
----------------除了bin以外 Unity 工程下 Assets/StreamingAssets 全部拷贝
----------------bin
--------------------Data // 相关的资源、配置和序列化数据会以他们各自的格式
------------------------unity_app_guid
------------------------unity default resources
------------------------ScriptingAssemblies.json
------------------------RuntimeInitializeOnLoads.json
------------------------Managed
------------------------data.unity3d
------------------------boot.config
------------AndroidManifest.xml
----build.gradle
2.1.1 新增cs文件
unityLibrary/src/main/Il2CppOutputProject/Source/il2cppOutput cpp文件变化如下
加入新增了一个 测试文件

2.1.2 新增库文件
2.1 以 MONO 导出项目的目录结构
mono 少用较少,本文不做展示
这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!
更多推荐



所有评论(0)