0.Unity 版本:

2022.3.62f2

1.IL2CPP、Mono的区别

原理请参考 https://blog.csdn.net/touchatoms/article/details/147036506?https://blog.csdn.net/touchatoms/article/details/147036506?

项目配置: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 少用较少,本文不做展示

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐