private void OnDragDrop(Event e) { DragEvent dragEvent = (DragEvent)e; //Debug.Log("OnDragDrop: " + e.Target.GetType().Name); Component src = dragEvent.DragInitiator; //(UiComponent)dragEvent.DragSource.Formats["control"]; Component dest = (Component)e.Target; Panel srcPanel = _pnlSource.ContentContains(src) ? _pnlSource : _pnlDest; if (dest == _pnlDest.ContentGroup) { srcPanel.RemoveContentChild(src); _pnlDest.AddContentChild(src); } else if (_pnlDest.ContentContains(dest)) { srcPanel.RemoveContentChild(src); // NOTE: needed for drag&drop, because src and dest could be the same _pnlDest.AddContentChildAt(src, _pnlDest.GetContentChildIndex(dest)); } AudioPlayerMapper.GetDefault().PlaySound("drag_drop", new AudioOption(AudioOptionType.Volume, 0.3f)); }