111
This commit is contained in:
88
Assets/GameFramework/Editor/BuildTool.cs
Normal file
88
Assets/GameFramework/Editor/BuildTool.cs
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
using YooAsset.Editor;
|
||||||
|
using YooAsset;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEditor.Build.Pipeline;
|
||||||
|
|
||||||
|
public class BuildTool
|
||||||
|
{
|
||||||
|
[MenuItem("Tools/打包Preload")]
|
||||||
|
public static void BuildPreload()
|
||||||
|
{
|
||||||
|
CopyHotDll.CopyPreloadDll2Byte();
|
||||||
|
ExecuteBuild("Preload",EBuildPipeline.ScriptableBuildPipeline, EditorUserBuildSettings.activeBuildTarget,EFileNameStyle.BundleName,EBuildinFileCopyOption.ClearAndCopyAll);
|
||||||
|
Debug.Log($"打包Preload结束");
|
||||||
|
}
|
||||||
|
[MenuItem("Tools/打包Main %G")]
|
||||||
|
public static void BuildMain()
|
||||||
|
{
|
||||||
|
CopyHotDll.CopyMainDll2Byte();
|
||||||
|
ExecuteBuild("Main", EBuildPipeline.ScriptableBuildPipeline, EditorUserBuildSettings.activeBuildTarget, EFileNameStyle.BundleName, EBuildinFileCopyOption.None);
|
||||||
|
Debug.Log($"打包Main结束");
|
||||||
|
}
|
||||||
|
[MenuItem("Tools/全部打包")]
|
||||||
|
public static void BuildAll()
|
||||||
|
{
|
||||||
|
BuildPreload();
|
||||||
|
BuildMain();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ExecuteBuild(string PackageName, EBuildPipeline BuildPipeline, BuildTarget BuildTarget, EFileNameStyle fileNameStyle, EBuildinFileCopyOption buildinFileCopyOption)
|
||||||
|
{
|
||||||
|
var buildinFileCopyParams = AssetBundleBuilderSetting.GetPackageBuildinFileCopyParams(PackageName, BuildPipeline.ToString());
|
||||||
|
var compressOption = AssetBundleBuilderSetting.GetPackageCompressOption(PackageName, BuildPipeline.ToString());
|
||||||
|
var clearBuildCache = AssetBundleBuilderSetting.GetPackageClearBuildCache(PackageName, BuildPipeline.ToString());
|
||||||
|
var useAssetDependencyDB = AssetBundleBuilderSetting.GetPackageUseAssetDependencyDB(PackageName, BuildPipeline.ToString());
|
||||||
|
var builtinShaderBundleName = GetBuiltinShaderBundleName(PackageName);
|
||||||
|
|
||||||
|
ScriptableBuildParameters buildParameters = new ScriptableBuildParameters();
|
||||||
|
buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
|
||||||
|
buildParameters.BuildinFileRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot();
|
||||||
|
buildParameters.BuildPipeline = BuildPipeline.ToString();
|
||||||
|
buildParameters.BuildBundleType = (int)EBuildBundleType.AssetBundle;
|
||||||
|
buildParameters.BuildTarget = BuildTarget;
|
||||||
|
buildParameters.PackageName = PackageName;
|
||||||
|
buildParameters.PackageVersion = GetPackageVersion();
|
||||||
|
buildParameters.EnableSharePackRule = true;
|
||||||
|
buildParameters.VerifyBuildingResult = true;
|
||||||
|
buildParameters.FileNameStyle = fileNameStyle;
|
||||||
|
buildParameters.BuildinFileCopyOption = buildinFileCopyOption;
|
||||||
|
buildParameters.BuildinFileCopyParams = buildinFileCopyParams;
|
||||||
|
buildParameters.CompressOption = compressOption;
|
||||||
|
buildParameters.ClearBuildCacheFiles = clearBuildCache;
|
||||||
|
buildParameters.UseAssetDependencyDB = useAssetDependencyDB;
|
||||||
|
buildParameters.BuiltinShadersBundleName = builtinShaderBundleName;
|
||||||
|
buildParameters.EncryptionServices = CreateEncryptionInstance(PackageName, BuildPipeline);
|
||||||
|
|
||||||
|
ScriptableBuildPipeline pipeline = new ScriptableBuildPipeline();
|
||||||
|
var buildResult = pipeline.Run(buildParameters, true);
|
||||||
|
if (buildResult.Success)
|
||||||
|
EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory);
|
||||||
|
}
|
||||||
|
public static string GetPackageVersion()
|
||||||
|
{
|
||||||
|
int totalMinutes = DateTime.Now.Hour * 60 + DateTime.Now.Minute;
|
||||||
|
return DateTime.Now.ToString("yyyy-MM-dd") + "-" + totalMinutes;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetBuiltinShaderBundleName(string PackageName)
|
||||||
|
{
|
||||||
|
var uniqueBundleName = AssetBundleCollectorSettingData.Setting.UniqueBundleName;
|
||||||
|
var packRuleResult = DefaultPackRule.CreateShadersPackRuleResult();
|
||||||
|
return packRuleResult.GetBundleName(PackageName, uniqueBundleName);
|
||||||
|
}
|
||||||
|
public static IEncryptionServices CreateEncryptionInstance(string PackageName, EBuildPipeline BuildPipeline)
|
||||||
|
{
|
||||||
|
var encyptionClassName = AssetBundleBuilderSetting.GetPackageEncyptionServicesClassName(PackageName, BuildPipeline.ToString());
|
||||||
|
var encryptionClassTypes = EditorTools.GetAssignableTypes(typeof(IEncryptionServices));
|
||||||
|
var classType = encryptionClassTypes.Find(x => x.FullName.Equals(encyptionClassName));
|
||||||
|
if (classType != null)
|
||||||
|
return (IEncryptionServices)Activator.CreateInstance(classType);
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
2
Assets/GameFramework/Editor/BuildTool.cs.meta
Normal file
2
Assets/GameFramework/Editor/BuildTool.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ef4dc48fe62a00246bf7a5beb87f7c4a
|
||||||
63
Assets/GameFramework/Editor/CopyHotDll.cs
Normal file
63
Assets/GameFramework/Editor/CopyHotDll.cs
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
|
||||||
|
public class CopyHotDll
|
||||||
|
{
|
||||||
|
[MenuItem("Tools/更新生成PreloadDll")]
|
||||||
|
public static void CopyPreloadDll2Byte()
|
||||||
|
{
|
||||||
|
HybridCLR.Editor.Commands.CompileDllCommand.CompileDllActiveBuildTarget();
|
||||||
|
string sourceDir = $"{Application.dataPath.Replace("/Assets", "")}/HybridCLRData/HotUpdateDlls/{UnityEditor.EditorUserBuildSettings.activeBuildTarget}/GameScripts.Preload.dll";
|
||||||
|
string destDir = $"{Application.dataPath}/GameRes/Preload/HotUpdateDll/GameScripts.Preload.bytes";
|
||||||
|
if (File.Exists(destDir))
|
||||||
|
{
|
||||||
|
File.Delete(destDir);
|
||||||
|
}
|
||||||
|
File.Copy(sourceDir, destDir);
|
||||||
|
AssetDatabase.Refresh();
|
||||||
|
Debug.Log($"copy {sourceDir} to {destDir}");
|
||||||
|
}
|
||||||
|
[MenuItem("Tools/更新生成MainDll")]
|
||||||
|
public static void CopyMainDll2Byte()
|
||||||
|
{
|
||||||
|
HybridCLR.Editor.Commands.CompileDllCommand.CompileDllActiveBuildTarget();
|
||||||
|
string sourceDir = $"{Application.dataPath.Replace("/Assets", "")}/HybridCLRData/HotUpdateDlls/{UnityEditor.EditorUserBuildSettings.activeBuildTarget}/GameScripts.Main.dll";
|
||||||
|
string destDir = $"{Application.dataPath}/GameRes/Main/HotUpdateDll/GameScripts.Main.bytes";
|
||||||
|
if (File.Exists(destDir))
|
||||||
|
{
|
||||||
|
File.Delete(destDir);
|
||||||
|
}
|
||||||
|
File.Copy(sourceDir, destDir);
|
||||||
|
AssetDatabase.Refresh();
|
||||||
|
Debug.Log($"copy {sourceDir} to {destDir}");
|
||||||
|
}
|
||||||
|
[MenuItem("Tools/更新生成补充数据源")]
|
||||||
|
public static void CopyDepDll2Byte()
|
||||||
|
{
|
||||||
|
HybridCLR.Editor.Commands.CompileDllCommand.CompileDllActiveBuildTarget();
|
||||||
|
string sourceDir = $"{Application.dataPath.Replace("/Assets", "")}/HybridCLRData/AssembliesPostIl2CppStrip/{UnityEditor.EditorUserBuildSettings.activeBuildTarget}/";
|
||||||
|
string destDir = $"{Application.dataPath}/GameRes/Main/HotUpdateDll/";
|
||||||
|
foreach (string dll in Boot.Inst.DepDlls)
|
||||||
|
{
|
||||||
|
string sourcePath = $"{sourceDir}/{dll}";
|
||||||
|
string destPath = $"{destDir}/{dll}.bytes";
|
||||||
|
if (File.Exists(sourcePath))
|
||||||
|
{
|
||||||
|
if (File.Exists(destPath))
|
||||||
|
{
|
||||||
|
File.Delete(destPath);
|
||||||
|
}
|
||||||
|
File.Copy(sourcePath, destPath);
|
||||||
|
AssetDatabase.Refresh();
|
||||||
|
Debug.Log($"copy {sourcePath} to {destPath}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Debug.Log("copy over");
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/GameFramework/Editor/CopyHotDll.cs.meta
Normal file
2
Assets/GameFramework/Editor/CopyHotDll.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4a15e4a3e4bbd7c4c9c3783ac0028089
|
||||||
@@ -1,9 +1,16 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
using YooAsset;
|
using YooAsset;
|
||||||
|
|
||||||
public class Boot : MonoBehaviour
|
public class Boot : SingletonMono<Boot>
|
||||||
{
|
{
|
||||||
|
public List<string> DepDlls = new List<string>()
|
||||||
|
{
|
||||||
|
"mscorlib.dll",
|
||||||
|
"System.dll",
|
||||||
|
"System.Core.dll",
|
||||||
|
"Mirror.dll"
|
||||||
|
};
|
||||||
public GameObject MainUICanvas;
|
public GameObject MainUICanvas;
|
||||||
public Camera UICamera;
|
public Camera UICamera;
|
||||||
public EPlayMode PlayMode = EPlayMode.EditorSimulateMode;
|
public EPlayMode PlayMode = EPlayMode.EditorSimulateMode;
|
||||||
|
|||||||
19
Assets/GameFramework/Runtime/GameFramework.Runtime.asmdef
Normal file
19
Assets/GameFramework/Runtime/GameFramework.Runtime.asmdef
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "GameFramework.Runtime",
|
||||||
|
"rootNamespace": "",
|
||||||
|
"references": [
|
||||||
|
"GUID:e34a5702dd353724aa315fb8011f08c3",
|
||||||
|
"GUID:f51ebe6a0ceec4240a699833d6309b23",
|
||||||
|
"GUID:3fe1a3e70da50184f9897101cad7e4f2",
|
||||||
|
"GUID:13ba8ce62aa80c74598530029cb2d649"
|
||||||
|
],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 63f032f8696ad5b4e99c26f7a9f89060
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
34
Assets/GameFramework/Runtime/PatchLogic/HotDllLoader.cs
Normal file
34
Assets/GameFramework/Runtime/PatchLogic/HotDllLoader.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using HybridCLR;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using UnityEngine;
|
||||||
|
using YooAsset;
|
||||||
|
|
||||||
|
public class HotDllLoader : Singleton<HotDllLoader>
|
||||||
|
{
|
||||||
|
public void LoadDll(ResourcePackage package, string dll)
|
||||||
|
{
|
||||||
|
if (package.GetAssetInfo(dll).Error == string.Empty)
|
||||||
|
{
|
||||||
|
AssetHandle handle = package.LoadAssetSync<TextAsset>(dll);
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
Assembly hotUpdateAss = System.AppDomain.CurrentDomain.GetAssemblies().First(a => a.GetName().Name == dll.Replace(".dll", ""));
|
||||||
|
#else
|
||||||
|
Assembly hotUpdateAss = Assembly.Load((handle.AssetObject as TextAsset).bytes);
|
||||||
|
#endif
|
||||||
|
Debug.Log($"<22><><EFBFBD><EFBFBD>{dll}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void LoadDepDll(ResourcePackage package, List<string> dlls)
|
||||||
|
{
|
||||||
|
foreach (string dll in dlls)
|
||||||
|
{
|
||||||
|
if (package.GetAssetInfo(dll).Error == string.Empty)
|
||||||
|
{
|
||||||
|
AssetHandle handle = package.LoadAssetSync<TextAsset>(dll);
|
||||||
|
RuntimeApi.LoadMetadataForAOTAssembly((handle.AssetObject as TextAsset).bytes, HomologousImageMode.SuperSet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 913490bf1a0079744825742899c17961
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using Cysharp.Threading.Tasks;
|
using Cysharp.Threading.Tasks;
|
||||||
|
using System;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using YooAsset;
|
using YooAsset;
|
||||||
|
|
||||||
@@ -6,7 +7,8 @@ public class MainOperation
|
|||||||
{
|
{
|
||||||
PatchOperationData data;
|
PatchOperationData data;
|
||||||
PatchOperation operation;
|
PatchOperation operation;
|
||||||
public MainOperation(EPlayMode playMode)
|
bool autoDownload;
|
||||||
|
public MainOperation(EPlayMode playMode, bool autoDownload = false)
|
||||||
{
|
{
|
||||||
data = new PatchOperationData();
|
data = new PatchOperationData();
|
||||||
data.packageName = "Main";
|
data.packageName = "Main";
|
||||||
@@ -14,12 +16,18 @@ public class MainOperation
|
|||||||
data.useBuildinFileSystem = false;
|
data.useBuildinFileSystem = false;
|
||||||
data.downloadingMaxNum = 10;
|
data.downloadingMaxNum = 10;
|
||||||
data.failedTryAgain = 3;
|
data.failedTryAgain = 3;
|
||||||
|
data.downloadUpdate = OnDownloadUpdate;
|
||||||
|
data.downloadFinish = OnDownloadFinish;
|
||||||
|
data.downloadError = OnDownloadError;
|
||||||
|
|
||||||
operation = new PatchOperation(data);
|
operation = new PatchOperation(data);
|
||||||
|
this.autoDownload = autoDownload;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async UniTask Execute()
|
public async UniTask Execute()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
PatchEvent.UpdateProgress(0f);
|
||||||
InitializationOperation initializationOperation = await operation.InitializePackage();
|
InitializationOperation initializationOperation = await operation.InitializePackage();
|
||||||
//<2F><>ʼ<EFBFBD><CABC>ʧ<EFBFBD><CAA7>
|
//<2F><>ʼ<EFBFBD><CABC>ʧ<EFBFBD><CAA7>
|
||||||
if (initializationOperation.Status != EOperationStatus.Succeed)
|
if (initializationOperation.Status != EOperationStatus.Succeed)
|
||||||
@@ -30,6 +38,8 @@ public class MainOperation
|
|||||||
.AddButton("<22>˳<EFBFBD>", (box) => { Application.Quit(); });
|
.AddButton("<22>˳<EFBFBD>", (box) => { Application.Quit(); });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
PatchEvent.UpdateStatus($"<22><>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD>{operation.data.packageName}");
|
||||||
|
Debug.Log($"<22><>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD>{operation.data.packageName}");
|
||||||
var PackageVersionOperation = await operation.RequestPackageVersion();
|
var PackageVersionOperation = await operation.RequestPackageVersion();
|
||||||
if (PackageVersionOperation.Status != EOperationStatus.Succeed)
|
if (PackageVersionOperation.Status != EOperationStatus.Succeed)
|
||||||
{
|
{
|
||||||
@@ -40,6 +50,8 @@ public class MainOperation
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
operation.packageVersion = PackageVersionOperation.PackageVersion;
|
operation.packageVersion = PackageVersionOperation.PackageVersion;
|
||||||
|
PatchEvent.UpdateStatus($"<22><>ȡ<EFBFBD>汾<EFBFBD>ɹ<EFBFBD>{operation.data.packageName}");
|
||||||
|
Debug.Log($"<22><>ȡ<EFBFBD>汾<EFBFBD>ɹ<EFBFBD>{operation.data.packageName}<7D><>{operation.packageVersion}");
|
||||||
var PackageManifestOperation = await operation.UpdatePackageManifest();
|
var PackageManifestOperation = await operation.UpdatePackageManifest();
|
||||||
if (PackageManifestOperation.Status != EOperationStatus.Succeed)
|
if (PackageManifestOperation.Status != EOperationStatus.Succeed)
|
||||||
{
|
{
|
||||||
@@ -53,15 +65,39 @@ public class MainOperation
|
|||||||
if (DownloaderOperation.TotalDownloadCount == 0)
|
if (DownloaderOperation.TotalDownloadCount == 0)
|
||||||
{
|
{
|
||||||
operation.SaveVersionToCache();
|
operation.SaveVersionToCache();
|
||||||
|
PatchEvent.UpdateStatus($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{operation.data.packageName}");
|
||||||
|
Debug.Log($"<22><><EFBFBD><EFBFBD>{operation.data.packageName}<7D><><EFBFBD>ɣ<EFBFBD><C9A3>汾<EFBFBD><E6B1BE>{operation.packageVersion}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!await operation.DownloadPackageFiles())
|
else
|
||||||
{
|
{
|
||||||
|
if (autoDownload)
|
||||||
|
{
|
||||||
|
if (!await Download(DownloaderOperation)) return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var completionSource = new UniTaskCompletionSource<bool>();
|
||||||
MessageBox.Show()
|
MessageBox.Show()
|
||||||
.SetTitle(operation.data.packageName)
|
.SetTitle(operation.data.packageName)
|
||||||
.SetContent($"{DownloaderOperation.Error}")
|
.SetContent($"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n{operation.GetCachedPackageVersion()}=>{operation.packageVersion}: {DownloaderOperation.TotalDownloadBytes / 1024f / 1024f:F1}MB")
|
||||||
.AddButton("<22>˳<EFBFBD>", (box) => { Application.Quit(); });
|
.AddButton("<22><EFBFBD><EFBFBD><EFBFBD>", async (box) =>
|
||||||
return;
|
{
|
||||||
|
bool success = await Download(DownloaderOperation);
|
||||||
|
completionSource.TrySetResult(success);
|
||||||
|
})
|
||||||
|
.AddButton("<22><><EFBFBD><EFBFBD>", (box) =>
|
||||||
|
{
|
||||||
|
DownloaderOperation.CancelDownload();
|
||||||
|
completionSource.TrySetResult(true);
|
||||||
|
})
|
||||||
|
.AddButton("<22>˳<EFBFBD>", (box) =>
|
||||||
|
{
|
||||||
|
completionSource.TrySetResult(false);
|
||||||
|
Application.Quit();
|
||||||
|
});
|
||||||
|
bool shouldContinue = await completionSource.Task;
|
||||||
|
if (!shouldContinue) return;
|
||||||
}
|
}
|
||||||
var ClearCacheFilesOperation = await operation.ClearCacheBundle();
|
var ClearCacheFilesOperation = await operation.ClearCacheBundle();
|
||||||
if (ClearCacheFilesOperation.Status != EOperationStatus.Succeed)
|
if (ClearCacheFilesOperation.Status != EOperationStatus.Succeed)
|
||||||
@@ -73,5 +109,39 @@ public class MainOperation
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
operation.SaveVersionToCache();
|
operation.SaveVersionToCache();
|
||||||
|
PatchEvent.UpdateStatus($"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{operation.data.packageName}");
|
||||||
|
Debug.Log($"<22><><EFBFBD><EFBFBD>{operation.data.packageName}<7D><><EFBFBD>ɣ<EFBFBD><C9A3>汾<EFBFBD><E6B1BE>{operation.packageVersion}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public async UniTask<bool> Download(DownloaderOperation downloaderOperation)
|
||||||
|
{
|
||||||
|
if (!await operation.DownloadPackageFiles())
|
||||||
|
{
|
||||||
|
MessageBox.Show()
|
||||||
|
.SetTitle(operation.data.packageName)
|
||||||
|
.SetContent($"{downloaderOperation.Error}")
|
||||||
|
.AddButton("<22>˳<EFBFBD>", (box) => { Application.Quit(); });
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
private void OnDownloadUpdate(DownloadUpdateData downloadUpdateData)
|
||||||
|
{
|
||||||
|
float progress = (float)downloadUpdateData.CurrentDownloadBytes / downloadUpdateData.TotalDownloadBytes;
|
||||||
|
string sizeText = $"{(downloadUpdateData.CurrentDownloadBytes / 1024f / 1024f):F1}MB / {(downloadUpdateData.TotalDownloadBytes / 1024f / 1024f):F1}MB";
|
||||||
|
|
||||||
|
PatchEvent.UpdateProgress(progress);
|
||||||
|
PatchEvent.UpdateDownloadSize(sizeText);
|
||||||
|
PatchEvent.UpdateStatus($"{data.packageName} <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDownloadFinish(DownloaderFinishData downloaderFinishData)
|
||||||
|
{
|
||||||
|
PatchEvent.UpdateStatus("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDownloadError(DownloadErrorData downloadErrorData)
|
||||||
|
{
|
||||||
|
PatchEvent.UpdateStatus($"<22><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>:{downloadErrorData.FileName}\n{downloadErrorData.ErrorInfo}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
24
Assets/GameFramework/Runtime/PatchLogic/PatchEvent.cs
Normal file
24
Assets/GameFramework/Runtime/PatchLogic/PatchEvent.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public static class PatchEvent
|
||||||
|
{
|
||||||
|
public static event Action<string> OnStatusUpdate;
|
||||||
|
public static event Action<float> OnProgressUpdate;
|
||||||
|
public static event Action<string> OnDownloadSizeUpdate;
|
||||||
|
|
||||||
|
public static void UpdateStatus(string status)
|
||||||
|
{
|
||||||
|
OnStatusUpdate?.Invoke(status);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateProgress(float progress)
|
||||||
|
{
|
||||||
|
OnProgressUpdate?.Invoke(progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateDownloadSize(string sizeText)
|
||||||
|
{
|
||||||
|
OnDownloadSizeUpdate?.Invoke(sizeText);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e733509362b9e5445b0354a734ec8c10
|
||||||
8
Assets/GameRes/Main/HotUpdateDll.meta
Normal file
8
Assets/GameRes/Main/HotUpdateDll.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0bd22a8b75fd12a47a8a037cd34776a3
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/GameRes/Preload/HotUpdateDll.meta
Normal file
8
Assets/GameRes/Preload/HotUpdateDll.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4637316722ac8274c9c67684dad27c05
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/GameRes/Preload/HotUpdateDll/GameScripts.Preload.bytes
Normal file
BIN
Assets/GameRes/Preload/HotUpdateDll/GameScripts.Preload.bytes
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e6a52de6997544b428ae088f4b2ee203
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
16
Assets/GameScripts/Preload/GameScripts.Preload.asmdef
Normal file
16
Assets/GameScripts/Preload/GameScripts.Preload.asmdef
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "GameScripts.Preload",
|
||||||
|
"rootNamespace": "",
|
||||||
|
"references": [
|
||||||
|
"GUID:63f032f8696ad5b4e99c26f7a9f89060"
|
||||||
|
],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 921b262766d31374c8fd93ad67954b9c
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -11,5 +11,32 @@ public class PatchWindow : MonoBehaviour
|
|||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
video.targetCamera = GameManager.Inst.UICamera;
|
video.targetCamera = GameManager.Inst.UICamera;
|
||||||
|
PatchEvent.OnStatusUpdate += OnStatusUpdate;
|
||||||
|
PatchEvent.OnProgressUpdate += OnProgressUpdate;
|
||||||
|
PatchEvent.OnDownloadSizeUpdate += OnDownloadSizeUpdate;
|
||||||
|
}
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
PatchEvent.OnStatusUpdate -= OnStatusUpdate;
|
||||||
|
PatchEvent.OnProgressUpdate -= OnProgressUpdate;
|
||||||
|
PatchEvent.OnDownloadSizeUpdate -= OnDownloadSizeUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnStatusUpdate(string status)
|
||||||
|
{
|
||||||
|
if (statusText != null)
|
||||||
|
statusText.text = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnProgressUpdate(float progress)
|
||||||
|
{
|
||||||
|
if (progressBar != null)
|
||||||
|
progressBar.value = progress;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDownloadSizeUpdate(string sizeText)
|
||||||
|
{
|
||||||
|
if (downloadSizeText != null)
|
||||||
|
downloadSizeText.text = sizeText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,16 @@
|
|||||||
<Group GroupActiveRule="EnableGroup" GroupName="UI" GroupDesc="" AssetTags="">
|
<Group GroupActiveRule="EnableGroup" GroupName="UI" GroupDesc="" AssetTags="">
|
||||||
<Collector CollectPath="Assets/GameRes/Preload/UI" CollectGUID="aa8e3d4d97e854440b55d59ed0802eb7" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
|
<Collector CollectPath="Assets/GameRes/Preload/UI" CollectGUID="aa8e3d4d97e854440b55d59ed0802eb7" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
|
||||||
</Group>
|
</Group>
|
||||||
|
<Group GroupActiveRule="EnableGroup" GroupName="HotUpdateDll" GroupDesc="" AssetTags="">
|
||||||
|
<Collector CollectPath="Assets/GameRes/Preload/HotUpdateDll" CollectGUID="4637316722ac8274c9c67684dad27c05" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
|
||||||
|
</Group>
|
||||||
</Package>
|
</Package>
|
||||||
<Package PackageName="Main" PackageDesc="主要资源" AutoAddressable="False" SupportExtensionless="True" LocationToLower="False" IncludeAssetGUID="False" IgnoreRuleName="NormalIgnoreRule">
|
<Package PackageName="Main" PackageDesc="主要资源" AutoAddressable="False" SupportExtensionless="True" LocationToLower="False" IncludeAssetGUID="False" IgnoreRuleName="NormalIgnoreRule">
|
||||||
<Group GroupActiveRule="EnableGroup" GroupName="Scenes" GroupDesc="" AssetTags="">
|
<Group GroupActiveRule="EnableGroup" GroupName="Scenes" GroupDesc="" AssetTags="">
|
||||||
<Collector CollectPath="Assets/GameRes/Main/Scenes" CollectGUID="1a9ac131d48956946937843c2007bf95" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
|
<Collector CollectPath="Assets/GameRes/Main/Scenes" CollectGUID="1a9ac131d48956946937843c2007bf95" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
|
||||||
</Group>
|
</Group>
|
||||||
|
<Group GroupActiveRule="EnableGroup" GroupName="HotUpdateDll" GroupDesc="" AssetTags="">
|
||||||
|
<Collector CollectPath="Assets/GameRes/Main/HotUpdateDll" CollectGUID="0bd22a8b75fd12a47a8a037cd34776a3" CollectType="MainAssetCollector" AddressRule="AddressByFileName" PackRule="PackDirectory" FilterRule="CollectAll" UserData="" AssetTags="" />
|
||||||
|
</Group>
|
||||||
</Package>
|
</Package>
|
||||||
</root>
|
</root>
|
||||||
@@ -38,6 +38,19 @@ MonoBehaviour:
|
|||||||
FilterRuleName: CollectAll
|
FilterRuleName: CollectAll
|
||||||
AssetTags:
|
AssetTags:
|
||||||
UserData:
|
UserData:
|
||||||
|
- GroupName: HotUpdateDll
|
||||||
|
GroupDesc:
|
||||||
|
AssetTags:
|
||||||
|
ActiveRuleName: EnableGroup
|
||||||
|
Collectors:
|
||||||
|
- CollectPath: Assets/GameRes/Preload/HotUpdateDll
|
||||||
|
CollectorGUID: 4637316722ac8274c9c67684dad27c05
|
||||||
|
CollectorType: 0
|
||||||
|
AddressRuleName: AddressByFileName
|
||||||
|
PackRuleName: PackDirectory
|
||||||
|
FilterRuleName: CollectAll
|
||||||
|
AssetTags:
|
||||||
|
UserData:
|
||||||
- PackageName: Main
|
- PackageName: Main
|
||||||
PackageDesc: "\u4E3B\u8981\u8D44\u6E90"
|
PackageDesc: "\u4E3B\u8981\u8D44\u6E90"
|
||||||
EnableAddressable: 0
|
EnableAddressable: 0
|
||||||
@@ -60,3 +73,16 @@ MonoBehaviour:
|
|||||||
FilterRuleName: CollectAll
|
FilterRuleName: CollectAll
|
||||||
AssetTags:
|
AssetTags:
|
||||||
UserData:
|
UserData:
|
||||||
|
- GroupName: HotUpdateDll
|
||||||
|
GroupDesc:
|
||||||
|
AssetTags:
|
||||||
|
ActiveRuleName: EnableGroup
|
||||||
|
Collectors:
|
||||||
|
- CollectPath: Assets/GameRes/Main/HotUpdateDll
|
||||||
|
CollectorGUID: 0bd22a8b75fd12a47a8a037cd34776a3
|
||||||
|
CollectorType: 0
|
||||||
|
AddressRuleName: AddressByFileName
|
||||||
|
PackRuleName: PackDirectory
|
||||||
|
FilterRuleName: CollectAll
|
||||||
|
AssetTags:
|
||||||
|
UserData:
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
|
|||||||
// {{ AOT assemblies
|
// {{ AOT assemblies
|
||||||
public static readonly IReadOnlyList<string> PatchedAOTAssemblyList = new List<string>
|
public static readonly IReadOnlyList<string> PatchedAOTAssemblyList = new List<string>
|
||||||
{
|
{
|
||||||
|
"mscorlib.dll",
|
||||||
};
|
};
|
||||||
// }}
|
// }}
|
||||||
|
|
||||||
@@ -12,6 +13,8 @@ public class AOTGenericReferences : UnityEngine.MonoBehaviour
|
|||||||
// }}
|
// }}
|
||||||
|
|
||||||
// {{ AOT generic types
|
// {{ AOT generic types
|
||||||
|
// System.Action<float>
|
||||||
|
// System.Action<object>
|
||||||
// }}
|
// }}
|
||||||
|
|
||||||
public void RefMethods()
|
public void RefMethods()
|
||||||
|
|||||||
@@ -1,2 +1,39 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<linker />
|
<linker>
|
||||||
|
<assembly fullname="GameFramework.Runtime">
|
||||||
|
<type fullname="GameManager" preserve="all" />
|
||||||
|
<type fullname="PatchEvent" preserve="all" />
|
||||||
|
<type fullname="Singleton`1" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="System">
|
||||||
|
<type fullname="System.CodeDom.Compiler.GeneratedCodeAttribute" preserve="all" />
|
||||||
|
<type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
|
||||||
|
<type fullname="System.ComponentModel.EditorBrowsableState" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="UnityEngine.CoreModule">
|
||||||
|
<type fullname="UnityEngine.Camera" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.MonoBehaviour" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.Object" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="UnityEngine.UI">
|
||||||
|
<type fullname="UnityEngine.UI.Slider" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.UI.Text" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="UnityEngine.VideoModule">
|
||||||
|
<type fullname="UnityEngine.Video.VideoPlayer" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="mscorlib">
|
||||||
|
<type fullname="System.Action`1" preserve="all" />
|
||||||
|
<type fullname="System.Array" preserve="all" />
|
||||||
|
<type fullname="System.Byte" preserve="all" />
|
||||||
|
<type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
|
||||||
|
<type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
|
||||||
|
<type fullname="System.Object" preserve="all" />
|
||||||
|
<type fullname="System.Runtime.CompilerServices.CompilationRelaxationsAttribute" preserve="all" />
|
||||||
|
<type fullname="System.Runtime.CompilerServices.CompilerGeneratedAttribute" preserve="all" />
|
||||||
|
<type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
|
||||||
|
<type fullname="System.Runtime.CompilerServices.RuntimeHelpers" preserve="all" />
|
||||||
|
<type fullname="System.RuntimeFieldHandle" preserve="all" />
|
||||||
|
<type fullname="System.ValueType" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
</linker>
|
||||||
@@ -3005,6 +3005,111 @@ MonoBehaviour:
|
|||||||
m_XAdvance: 0
|
m_XAdvance: 0
|
||||||
m_YAdvance: 0
|
m_YAdvance: 0
|
||||||
m_FeatureLookupFlags: 0
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6892
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6891
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 891490
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6892
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.8000001
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6911
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 891490
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6892
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.8000001
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6912
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 891490
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 75
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.5
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 21
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6954
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 3.6000001
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 11
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 891490
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 6954
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 3.6000001
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 63
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 891490
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 76
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.5
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 21
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
m_MarkToBaseAdjustmentRecords: []
|
m_MarkToBaseAdjustmentRecords: []
|
||||||
m_MarkToMarkAdjustmentRecords: []
|
m_MarkToMarkAdjustmentRecords: []
|
||||||
m_ShouldReimportFontFeatures: 0
|
m_ShouldReimportFontFeatures: 0
|
||||||
|
|||||||
30
ProjectSettings/HybridCLRSettings.asset
Normal file
30
ProjectSettings/HybridCLRSettings.asset
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &1
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e189374413a3f00468e49d51d8b27a09, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
enable: 1
|
||||||
|
useGlobalIl2cpp: 0
|
||||||
|
hybridclrRepoURL: https://gitee.com/focus-creative-games/hybridclr
|
||||||
|
il2cppPlusRepoURL: https://gitee.com/focus-creative-games/il2cpp_plus
|
||||||
|
hotUpdateAssemblyDefinitions:
|
||||||
|
- {fileID: 5897886265953266890, guid: 921b262766d31374c8fd93ad67954b9c, type: 3}
|
||||||
|
hotUpdateAssemblies: []
|
||||||
|
preserveHotUpdateAssemblies: []
|
||||||
|
hotUpdateDllCompileOutputRootDir: HybridCLRData/HotUpdateDlls
|
||||||
|
externalHotUpdateAssembliyDirs: []
|
||||||
|
strippedAOTDllOutputRootDir: HybridCLRData/AssembliesPostIl2CppStrip
|
||||||
|
patchAOTAssemblies: []
|
||||||
|
outputLinkFile: HybridCLRGenerate/link.xml
|
||||||
|
outputAOTGenericReferenceFile: HybridCLRGenerate/AOTGenericReferences.cs
|
||||||
|
maxGenericReferenceIteration: 10
|
||||||
|
maxMethodBridgeGenericIteration: 10
|
||||||
Reference in New Issue
Block a user