Fix editor compilation issue

This commit is contained in:
Michal Pikulski
2025-11-06 18:23:21 +01:00
parent eb9da316ad
commit 1c9d0333ea
2 changed files with 0 additions and 0 deletions

View File

@@ -1,95 +0,0 @@
using UnityEditor;
using UnityEngine;
using UI.DragAndDrop.Core;
namespace UI.DragAndDrop.Editor
{
[CustomEditor(typeof(DraggableObject), true)]
public class DraggableObjectEditor : UnityEditor.Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
DraggableObject draggable = (DraggableObject)target;
// Only show button in edit mode
if (!Application.isPlaying)
{
EditorGUILayout.Space();
EditorGUILayout.LabelField("Editor Tools", EditorStyles.boldLabel);
if (GUILayout.Button("Snap to Parent Slot"))
{
SnapToParentSlot(draggable);
}
}
}
private void SnapToParentSlot(DraggableObject draggable)
{
// Find parent slot
DraggableSlot parentSlot = draggable.GetComponentInParent<DraggableSlot>();
if (parentSlot == null)
{
Debug.LogWarning("No parent DraggableSlot found!");
return;
}
Undo.RecordObject(draggable.transform, "Snap to Parent Slot");
// Reset position and rotation
draggable.transform.localPosition = Vector3.zero;
draggable.transform.localRotation = Quaternion.identity;
// Apply slot's size mode
RectTransform draggableRect = draggable.GetComponent<RectTransform>();
RectTransform slotRect = parentSlot.GetComponent<RectTransform>();
if (draggableRect != null && slotRect != null)
{
// Use reflection to access private fields
System.Reflection.FieldInfo modeField = typeof(DraggableSlot).GetField("occupantSizeMode",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
System.Reflection.FieldInfo scaleField = typeof(DraggableSlot).GetField("occupantScale",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
if (modeField != null && scaleField != null)
{
var sizeMode = modeField.GetValue(parentSlot);
var occupantScale = (Vector3)scaleField.GetValue(parentSlot);
// Get enum type
System.Type enumType = sizeMode.GetType();
string modeName = System.Enum.GetName(enumType, sizeMode);
Undo.RecordObject(draggableRect, "Apply Slot Size Mode");
switch (modeName)
{
case "MatchSlotSize":
draggableRect.sizeDelta = slotRect.sizeDelta;
draggableRect.localScale = Vector3.one;
Debug.Log($"Matched slot size: {slotRect.sizeDelta}");
break;
case "Scale":
draggableRect.localScale = occupantScale;
Debug.Log($"Applied scale: {occupantScale}");
break;
case "None":
default:
// Keep current size
break;
}
}
}
EditorUtility.SetDirty(draggable.gameObject);
Debug.Log($"Snapped {draggable.name} to parent slot {parentSlot.name}");
}
}
}

View File

@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 290619d598ef4b199862482abc7188a3
timeCreated: 1762428015