void DropAreaNewPool(GameObjectPool myTarget) { GUIStyle style = new GUIStyle(EditorStyles.boldLabel); style.normal.textColor = Color.black; style.richText = true; style.alignment = TextAnchor.MiddleCenter; style.fontSize = 15; Event evt = Event.current; Rect drop_area = EditorGUILayout.BeginHorizontal("box"); { EditorGUILayout.LabelField("Drop Prefab to create new pool", style, GUILayout.Height(50)); } EditorGUILayout.EndVertical(); switch (evt.type) { case EventType.DragUpdated: case EventType.DragPerform: if (!drop_area.Contains(evt.mousePosition)) { return; } DragAndDrop.visualMode = DragAndDropVisualMode.Link; if (evt.type == EventType.DragPerform) { DragAndDrop.AcceptDrag(); foreach (Object draggedObject in DragAndDrop.objectReferences) { if ((GameObject)draggedObject != null) { myTarget.AddPool((GameObject)draggedObject); } } } break; } }