| | |
| | | if (asset == "Assembly-CSharp.dll.bytes")
|
| | | {
|
| | | assetData = new byte[www.downloadHandler.data.Length - 3];
|
| | | Array.Copy(assetData, 3, www.downloadHandler.data, 0, www.downloadHandler.data.Length);
|
| | |
|
| | | Array.Copy(www.downloadHandler.data, 3, assetData, 0, assetData.Length);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | {
|
| | | if (aotDllName == "Assembly-CSharp.dll.bytes")
|
| | | continue;
|
| | | byte[] dllBytes = ReadBytesFromStreamingAssets(aotDllName);
|
| | | // 加载assembly对应的dll,会自动为它hook。一旦aot泛型函数的native函数不存在,用解释器版本代码
|
| | | LoadImageErrorCode err = RuntimeApi.LoadMetadataForAOTAssembly(dllBytes, mode);
|
| | | LoadImageErrorCode err = RuntimeApi.LoadMetadataForAOTAssembly(ReadBytesFromStreamingAssets(aotDllName), mode);
|
| | | Debug.Log($"LoadMetadataForAOTAssembly:{aotDllName}. mode:{mode} ret:{err}");
|
| | | }
|
| | | }
|
| | |
| | | #if !UNITY_EDITOR
|
| | | LoadMetadataForAOTAssemblies();
|
| | | _hotUpdateAss = Assembly.Load(ReadBytesFromStreamingAssets("Assembly-CSharp.dll.bytes"));
|
| | | s_assetDatas.Clear();
|
| | | s_assetDatas = null;
|
| | | #else
|
| | | if (_hotUpdateAss == null)
|
| | | _hotUpdateAss = System.AppDomain.CurrentDomain.GetAssemblies().First(a => a.GetName().Name == "Assembly-CSharp");
|