添加BuildPipelineSettings,支持自定义 LinkXmlProcess和 ObfuscationProcess的 callbackOrder。

main
walon 2025-06-28 20:20:08 +08:00
parent 59db0dfaab
commit 02ed0608e4
6 changed files with 38 additions and 2 deletions

View File

@ -0,0 +1,15 @@
using System;
using UnityEngine;
namespace Obfuz.Settings
{
[Serializable]
public class BuildPipelineSettings
{
[Tooltip("callback order of LinkXmlProcessor")]
public int linkXmlProcessCallbackOrder = 10000;
[Tooltip("callback order of ObfuscationProcess")]
public int obfuscationProcessCallbackOrder = 10000;
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 68737b215ecfe344a93d56007e186432
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -5,11 +5,15 @@ using UnityEngine;
namespace Obfuz.Settings
{
public class ObfuzSettings : ScriptableObject
{
[Tooltip("enable Obfuz")]
public bool enable = true;
[Tooltip("build pipeline settings")]
public BuildPipelineSettings buildPipelineSettings;
[Tooltip("assembly settings")]
public AssemblySettings assemblySettings;

View File

@ -25,6 +25,8 @@ namespace Obfuz.Settings
private SerializedObject _serializedObject;
private SerializedProperty _enable;
private SerializedProperty _buildPipelineSettings;
private SerializedProperty _assemblySettings;
private SerializedProperty _obfuscationPassSettings;
private SerializedProperty _secretSettings;
@ -61,6 +63,8 @@ namespace Obfuz.Settings
_serializedObject?.Dispose();
_serializedObject = new SerializedObject(setting);
_enable = _serializedObject.FindProperty("enable");
_buildPipelineSettings = _serializedObject.FindProperty("buildPipelineSettings");
_assemblySettings = _serializedObject.FindProperty("assemblySettings");
_obfuscationPassSettings = _serializedObject.FindProperty("obfuscationPassSettings");
_secretSettings = _serializedObject.FindProperty("secretSettings");
@ -88,6 +92,8 @@ namespace Obfuz.Settings
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(_enable);
EditorGUILayout.PropertyField(_buildPipelineSettings);
EditorGUILayout.PropertyField(_assemblySettings);
EditorGUILayout.PropertyField(_obfuscationPassSettings);
EditorGUILayout.PropertyField(_secretSettings);

View File

@ -16,7 +16,7 @@ namespace Obfuz.Unity
{
public class LinkXmlProcess : IUnityLinkerProcessor
{
public int callbackOrder => 10000;
public int callbackOrder => ObfuzSettings.Instance.buildPipelineSettings.linkXmlProcessCallbackOrder;
public string GenerateAdditionalLinkXmlFile(BuildReport report, UnityLinkerBuildPipelineData data)
{

View File

@ -16,7 +16,7 @@ namespace Obfuz.Unity
#if UNITY_2019_1_OR_NEWER
public class ObfuscationProcess : IPostBuildPlayerScriptDLLs
{
public int callbackOrder => 10000;
public int callbackOrder => ObfuzSettings.Instance.buildPipelineSettings.obfuscationProcessCallbackOrder;
public static event Action<ObfuscationBeginEventArgs> OnObfuscationBegin;