Skip to content

Instantly share code, notes, and snippets.

@bzgeb
Created September 28, 2012 14:52
Show Gist options
  • Star 88 You must be signed in to star a gist
  • Fork 13 You must be signed in to fork a gist
  • Save bzgeb/3800350 to your computer and use it in GitHub Desktop.
Save bzgeb/3800350 to your computer and use it in GitHub Desktop.
Example Drag & Drop area in a custom inspector for the Unity editor
using UnityEngine;
using System.Collections;
using UnityEditor;
[CustomEditor (typeof(TriggerContainer))]
public class TriggerContainerEditor : Editor
{
private SerializedObject obj;
public void OnEnable ()
{
obj = new SerializedObject (target);
}
public override void OnInspectorGUI ()
{
DrawDefaultInspector ();
EditorGUILayout.Space ();
DropAreaGUI ();
}
public void DropAreaGUI ()
{
Event evt = Event.current;
Rect drop_area = GUILayoutUtility.GetRect (0.0f, 50.0f, GUILayout.ExpandWidth (true));
GUI.Box (drop_area, "Add Trigger");
switch (evt.type) {
case EventType.DragUpdated:
case EventType.DragPerform:
if (!drop_area.Contains (evt.mousePosition))
return;
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
if (evt.type == EventType.DragPerform) {
DragAndDrop.AcceptDrag ();
foreach (Object dragged_object in DragAndDrop.objectReferences) {
// Do On Drag Stuff here
}
}
break;
}
}
}
@iendsl
Copy link

iendsl commented Mar 16, 2021

<3

@HoogsterInc
Copy link

I love you most. More than all those people from past years.
Seriously thanks for this - trying to jump into the Editor coding has been rough for me, and this gave me a great platform to jump into it.

@SiarheiPilat
Copy link

Dian son, this is good, thanks!

@loadinggames
Copy link

What a gigachad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment