//-------------------------------------------------------------------------------------[]
        private void DropToContainer(IDragDropContainer container)
        {
            _mTrans.parent = (container as MonoBehaviour).transform;

            (container as MonoBehaviour).gameObject.SendMessage(
                "OnNewChild",
                _mTrans.gameObject.name + Constants.DifferentValues.SpecialSeparatorSymbol + ItemId);

            if (!container.WasItemAdded())
            {
                _mTrans.parent        = _mParent;
                _mTrans.localPosition = _startPos;
            }
            else
            {
                _startPos = new Vector3(container.NewItemFinalPos.x, container.NewItemFinalPos.y, _startPos.z);

                var prevContainer = _mParent.gameObject.GetInterface <IDragDropContainer>();
                if (prevContainer != null &&
                    prevContainer != container)
                {
                    prevContainer.RemoveItem(ItemId);
                }
            }
        }
        //-------------------------------------------------------------------------------------[]
        private void Drop()
        {
            if (_mTrans.parent != DragDropRoot.root)
            {
                return;
            }
            Collider           col       = UICamera.lastHit.collider;
            IDragDropContainer container = (col != null)
                                               ? col.gameObject.GetInterface <IDragDropContainer>()
                                               : null;

            if (CanDropToContainer(container))
            {
                DropToContainer(container);
            }
            else
            {
                ReturnItemToPrevParent();
            }

            _prevContainer = null;

            NGUITools.MarkParentAsChanged(gameObject);
        }
 //-------------------------------------------------------------------------------------[]
 private bool CanDropToContainer(IDragDropContainer container)
 {
     return(container != null && container.CanAddItemToContainer());
 }