//-------------------------------------------------------------------------------------[] 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()); }