コード例 #1
0
 public void StartDragging(IDragAndDropNode startNode)
 {
     _currentDraggable = startNode.GetDraggable();
     if (_currentDraggable != null) {
         _startNode = startNode;
         foreach (IDragAndDropNode node in _nodes) {
             if (!node.Equals(startNode))
                 node.OnDragStarted(_currentDraggable);
         }
     }
 }
コード例 #2
0
 public void OnDrop(IDragAndDropNode dropNode)
 {
     if (dropNode.OnDrop(_currentDraggable) && _startNode != dropNode)
         _startNode.OnDragFinished();
     else
         _startNode.OnDragCancelled();
     foreach (IDragAndDropNode node in _nodes) {
         if (!node.Equals(_startNode) && !node.Equals(dropNode))
             node.OnDragCancelled();
     }
 }
コード例 #3
0
 private static bool IsNodeInPosition(IDragAndDropNode node, Vector2 position)
 {
     var minX = node.GetDragableTopLeftCorner().x;
     var minY = node.GetDragableTopLeftCorner().y;
     var maxX = node.GetDragableBottomRightCorner().x;
     var maxY = node.GetDragableBottomRightCorner().y;
     return position.x > minX && position.y > minY && position.x < maxX && position.y < maxY;
 }
コード例 #4
0
 public void RemoveNode(IDragAndDropNode node)
 {
     _nodes.Remove(node);
 }
コード例 #5
0
 public void AddNode(IDragAndDropNode node)
 {
     _nodes.Add(node);
 }