예제 #1
0
    public void EndDrag(GameObject card)
    {
        //Current lowest distance between grid and currently held card
        float lowest_distance = MinimumDragDistance;

        GridContainer container_final = null;

        int new_index = -1;

        //Check all active containers to detect where item should be placed
        foreach (GridContainer container in CurrentlyActiveContainers)
        {
            for (int i = 0; i < container.CardMax; ++i)
            {
                //print("iterating " + i);
                GameObject grid_space  = container.GridDisplay.transform.GetChild(i).gameObject;
                float      curr_lowest = Vector2.Distance(grid_space.transform.position, card.transform.position);
                if (curr_lowest < lowest_distance)
                {
                    lowest_distance = curr_lowest;
                    container_final = container;
                    new_index       = i;
                }
            }
        }

        if (new_index != -1) //Switch
        {
            LastContainer.SwitchCards(LastIndex, card, container_final, new_index);
        }
        else // Do not switch
        {
            LastContainer.AddCard(card, LastIndex);
        }
    }