[new] 支持自定义外部热更新dll的搜索路径 externalHotUpdateAssembliyDirs
parent
45d97d758f
commit
abc70a7ffc
|
|
@ -6,6 +6,7 @@ using System.IO;
|
|||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEditor;
|
||||
|
||||
namespace HybridCLR.Editor.Meta
|
||||
{
|
||||
|
|
@ -119,10 +120,30 @@ namespace HybridCLR.Editor.Meta
|
|||
return typeSigs.Select(s => ToShareTypeSig(s)).ToList();
|
||||
}
|
||||
|
||||
public static IAssemblyResolver CreateBuildTargetAssemblyResolver(UnityEditor.BuildTarget target)
|
||||
public static IAssemblyResolver CreateHotUpdateAssemblyResolver(BuildTarget target)
|
||||
{
|
||||
return new CombinedAssemblyResolver(new PathAssemblyResolver(
|
||||
SettingsUtil.GetHotUpdateDllsOutputDirByTarget(target)),
|
||||
var externalDirs = HybridCLRSettings.Instance.externalHotUpdateAssembliyDirs;
|
||||
var defaultHotUpdateOutputDir = SettingsUtil.GetHotUpdateDllsOutputDirByTarget(target);
|
||||
if (externalDirs == null || externalDirs.Length == 0)
|
||||
{
|
||||
return new PathAssemblyResolver(defaultHotUpdateOutputDir);
|
||||
}
|
||||
else
|
||||
{
|
||||
var externalDirList = new List<string>();
|
||||
foreach (var dir in externalDirs)
|
||||
{
|
||||
externalDirList.Add($"{dir}/{target}");
|
||||
externalDirList.Add(dir);
|
||||
}
|
||||
externalDirList.Add(defaultHotUpdateOutputDir);
|
||||
return new PathAssemblyResolver(externalDirList.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
public static IAssemblyResolver CreateBuildTargetAssemblyResolver(BuildTarget target)
|
||||
{
|
||||
return new CombinedAssemblyResolver(CreateHotUpdateAssemblyResolver(target),
|
||||
new UnityPluginAssemblyResolver(),
|
||||
new UnityDotNetAOTAssemblyResolver(),
|
||||
new UnityEditorAssemblyResolver());
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ namespace HybridCLR.Editor
|
|||
private SerializedProperty _hotUpdateAssemblies;
|
||||
private SerializedProperty _preserveHotUpdateAssemblies;
|
||||
private SerializedProperty _hotUpdateDllCompileOutputRootDir;
|
||||
private SerializedProperty _externalHotUpdateAssembliyDirs;
|
||||
private SerializedProperty _strippedAOTDllOutputRootDir;
|
||||
private SerializedProperty _patchAOTAssemblies;
|
||||
private SerializedProperty _differentialHybridAssemblies;
|
||||
|
|
@ -46,6 +47,7 @@ namespace HybridCLR.Editor
|
|||
_hotUpdateAssemblies = _serializedObject.FindProperty("hotUpdateAssemblies");
|
||||
_preserveHotUpdateAssemblies = _serializedObject.FindProperty("preserveHotUpdateAssemblies");
|
||||
_hotUpdateDllCompileOutputRootDir = _serializedObject.FindProperty("hotUpdateDllCompileOutputRootDir");
|
||||
_externalHotUpdateAssembliyDirs = _serializedObject.FindProperty("externalHotUpdateAssembliyDirs");
|
||||
_strippedAOTDllOutputRootDir = _serializedObject.FindProperty("strippedAOTDllOutputRootDir");
|
||||
_patchAOTAssemblies = _serializedObject.FindProperty("patchAOTAssemblies");
|
||||
_differentialHybridAssemblies = _serializedObject.FindProperty("differentialHybridAssemblies");
|
||||
|
|
@ -136,6 +138,7 @@ namespace HybridCLR.Editor
|
|||
EditorGUILayout.PropertyField(_hotUpdateAssemblies);
|
||||
EditorGUILayout.PropertyField(_preserveHotUpdateAssemblies);
|
||||
EditorGUILayout.PropertyField(_hotUpdateDllCompileOutputRootDir);
|
||||
EditorGUILayout.PropertyField(_externalHotUpdateAssembliyDirs);
|
||||
EditorGUILayout.PropertyField(_strippedAOTDllOutputRootDir);
|
||||
EditorGUILayout.PropertyField(_patchAOTAssemblies);
|
||||
EditorGUILayout.PropertyField(_differentialHybridAssemblies);
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ namespace HybridCLR.Editor
|
|||
[Header("热更新dll编译输出根目录")]
|
||||
public string hotUpdateDllCompileOutputRootDir = "HybridCLRData/HotUpdateDlls";
|
||||
|
||||
[Header("外部热更新dll搜索路径")]
|
||||
public string[] externalHotUpdateAssembliyDirs;
|
||||
|
||||
[Header("裁减后AOT dll输出根目录")]
|
||||
public string strippedAOTDllOutputRootDir = "HybridCLRData/AssembliesPostIl2CppStrip";
|
||||
|
||||
|
|
@ -39,7 +42,7 @@ namespace HybridCLR.Editor
|
|||
public string[] differentialHybridAssemblies;
|
||||
|
||||
[Header("差分混合热更新配置数据输出目录")]
|
||||
public string differentialHybridOptionOutputDir = "Assets/StreamingAssets";
|
||||
public string differentialHybridOptionOutputDir = "HybridCLRData/DifferentialHybridOptionDatas";
|
||||
|
||||
[Header("生成link.xml时扫描asset中引用的类型")]
|
||||
public bool collectAssetReferenceTypes;
|
||||
|
|
@ -53,9 +56,6 @@ namespace HybridCLR.Editor
|
|||
[Header("AOT泛型实例化搜索迭代次数")]
|
||||
public int maxGenericReferenceIteration = 10;
|
||||
|
||||
//[Header("预留MonoPInvokeCallbackAttribute函数个数")]
|
||||
//public int ReversePInvokeWrapperCount = 10;
|
||||
|
||||
[Header("MethodBridge泛型搜索迭代次数")]
|
||||
public int maxMethodBridgeGenericIteration = 10;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "com.focus-creative-games.hybridclr_unity",
|
||||
"version": "1.1.3",
|
||||
"version": "1.1.4",
|
||||
"displayName": "HybridCLR",
|
||||
"description": "Unity package for HybridCLR. It includes editor and runtime scripts and assets for HybridCLR",
|
||||
"category": "Runtime",
|
||||
|
|
|
|||
Loading…
Reference in New Issue