コード例 #1
0
    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;
        }
    }