如何编译il2cpp工程
工程结构介绍

1.Il2CppOutputProject工程:通过IL2CPP将Unity的C#代码转换成C++代码。值得注意的是,这不是直接从C#到C++的一对一转换,而是经过了中间语言层的转换,这有助于保护源代码不被轻易反编译。
2.GameNameX (Universal Windows)工程:这是UWP应用程序的框架或容器,用于整合和运行由Unity生成的游戏内容。开发者需要在此工程中接入MG Ads SDK。
3.Unity Data工程:这部分包含了UWP的配置文件,包含UWP和IL2Cpp的通信组件,是游戏运行不可或缺的一部分。
在导出的UWP项目中,Il2CppOutputProject是唯一与Unity紧密相关的部分。开发者可以选择将这个项目编译成DLL,然后在UWP应用中作为外部库引用。这一做法不仅简化了UWP项目的结构,还因为C++编译后的DLL具有较高的安全性,难以被反编译,从而保护了游戏的源代码的安全。
操作步骤
1.选择Master模式,分别使用 x64、x86、ARM 编译三次Il2CppOutputProject工程(图中1)。为了防止清理解决方案时之前生成的文件丢失,需将生成的dll文件拷贝到根目录自定义文件夹中。

2.编译后,把\build\bin\x64\Master
\build\bin\x86\Master
\build\bin\ARM\Master
中的GameAssembly.dll、GameAssembly.exp、GameAssembly.lib、GameAssembly.pdb四个文件,按照目录结构,拷贝到解决方案根目录中。此时,解决方案中可以移除Il2CppOutputProject工程(图中1)。

在解决方案中创建GameAssembly文件夹,将上一步的DLL等4个文件拷贝至此。目录如下:

3.在解决方案中引用DLL
右键UWP工程(图中2),属性-生成前事件,使用命令在出包编译时把DLL拷贝到输出目录,完成出包。

生成命令:
复制
copy /y $(SolutionDir)\GameAssembly$(Platform)$(Configuration)\GameAssembly.dll $(SolutionDir)build\bin$(Platform)$(Configuration)
copy /y $(SolutionDir)\GameAssembly$(Platform)$(Configuration)\GameAssembly.lib $(SolutionDir)build\bin$(Platform)$(Configuration)
copy /y $(SolutionDir)\GameAssembly$(Platform)$(Configuration)\GameAssembly.pdb $(SolutionDir)build\bin$(Platform)$(Configuration)
4.编译UNITYil2cppdemo(Universal Windows)出包,上传微软商店。