Created
September 28, 2012 14:52
-
-
Save bzgeb/3800350 to your computer and use it in GitHub Desktop.
Example Drag & Drop area in a custom inspector for the Unity editor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} | |
} |
No, GetComponent can't be called on Object. Anyway, I figured out my original issue which led me to try this solution so I don't need it anymore.
goodWork
Wonderful!
<3
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.
Dian son, this is good, thanks!
What a gigachad
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How about Getting the GameObject and then call Getcomponent on it.
Gameobject obj = dragged_object as GameObject;
T type = obj.GetComponent< T >();
Give it a try