using UnityEditor; using UnityEngine; using UnityEngine.UIElements; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// namespace Rukhanka.Editor { public class SettingsWindow: SettingsProvider { ResponseFileManager editorRSP, hybridRSP, runtimeRSP, debugDrawerRSP; ShaderConfigManager scm; const string EDITOR_RSP_PATH = "Packages/com.rukhanka.animation/Rukhanka.Editor/csc.rsp"; const string HYBRID_RSP_PATH = "Packages/com.rukhanka.animation/Rukhanka.Hybrid/csc.rsp"; const string RUNTIME_RSP_PATH = "Packages/com.rukhanka.animation/Rukhanka.Runtime/csc.rsp"; const string DEBUG_DRAWER_RSP_PATH = "Packages/com.rukhanka.animation/Rukhanka.DebugDrawer/csc.rsp"; public const string SHADER_CONFIG_PATH = "Packages/com.rukhanka.animation/Rukhanka.Runtime/Common/Shaders/ShaderConf.hlsl"; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SettingsWindow(string path, SettingsScope ss = SettingsScope.Project) : base(path, ss) { } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [SettingsProvider] static SettingsProvider CreateSettingsProvider() { var rv = new SettingsWindow("Project/Rukhanka Animation", SettingsScope.Project); return rv; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public override void OnActivate(string searchContext, VisualElement rootElement) { InitSymbolManagers(); var vta = AssetDatabase.LoadAssetAtPath("Packages/com.rukhanka.animation/Rukhanka.Editor/UXML/SettingsWindow.uxml"); var settingsInstance = vta.Instantiate(); rootElement.Add(settingsInstance); ConfigureUI(settingsInstance); SetupDebugAndValidationCheckbox(settingsInstance); SetupToggle(settingsInstance, "RUKHANKA_ENABLE_DEFORMATION_MOTION_VECTORS", "enableMotionVectorsToggle", new []{ runtimeRSP, hybridRSP }, scm); #if RUKHANKA_INPLACE_SKINNING var hdd = settingsInstance.Q("halfDeformedData"); var hddl = settingsInstance.Q