コード例 #1
0
    public void SwapPlaceAnimated(ref DragIt first, ref DragIt second)
    {
        // Swap places
        if (first != null)
        {
            m_CanPlay = false;

            m_TempPosition = first.transform.position;
            m_TempID       = first.m_CurrentID;

            // first
            first.m_CurrentID = second.m_CurrentID;
            iTween.MoveTo(first.gameObject, second.transform.position, m_AnimationMoveTime);

            // second
            second.transform.SetAsLastSibling();
            second.m_CurrentID = m_TempID;
            iTween.MoveTo(second.gameObject, m_TempPosition, m_AnimationMoveTime);

            if (first != second)
            {
                m_MovementsShowText.text = "Moves: " + ++m_MovementCount;
            }

            StartCoroutine(ControlPlaying(second.transform, m_TempPosition));
        }
    }
コード例 #2
0
 private void CheckErrors()
 {
     if (m_SelectedFirst != null)
     {
         m_SelectedFirst.GetComponent <Outline>().enabled = false;
         AnimateSelectedTile(new Vector3(1, 1, 1));
         m_SelectedFirst = null;
     }
 }
コード例 #3
0
    public void SwapPlace(ref DragIt first, ref DragIt second)
    {
        // Swap places
        if (first != null)
        {
            m_TempPosition = first.transform.position;
            m_TempID       = first.m_CurrentID;

            // first
            first.m_CurrentID        = second.m_CurrentID;
            first.transform.position = second.transform.position;

            // second
            second.m_CurrentID        = m_TempID;
            second.transform.position = m_TempPosition;
        }
    }
コード例 #4
0
    void Awake()
    {
        CheckLevelManagerValues();

        m_Tiles = new GameObject[m_Rows, m_Columns];

        int   winID    = 0; // for setting each tile's win id
        float uvWidth  = 1.0f / m_Columns;
        float uvHeight = 1.0f / m_Rows;

        for (int i = 0; i < m_Rows; i++)
        {
            for (int j = 0; j < m_Columns; j++)
            {
                m_Tiles[i, j]      = Instantiate(m_TilePrefab, m_InstantiateParent);
                m_Tiles[i, j].name = "Tile " + i + ", " + j;

                DragIt temp = m_Tiles[i, j].GetComponent <DragIt>();
                temp.m_WinID     = winID;
                temp.m_CurrentID = winID++;
                temp.GetComponent <RawImage>().material = m_Material;
                temp.GetComponent <RawImage>().uvRect   = new Rect(j * uvWidth, i * uvHeight, uvWidth, uvHeight);

                RectTransform rect = m_Tiles[i, j].GetComponent <RectTransform>();
                rect.sizeDelta        = new Vector2(Screen.width / m_Columns, Screen.height / m_Rows);
                rect.anchoredPosition = new Vector3(j * rect.rect.width, i * rect.rect.height, 0);
            }
        }

        m_Center.sizeDelta        = m_Tiles[0, 0].GetComponent <RectTransform>().sizeDelta;
        m_Center.anchoredPosition = new Vector2(((m_Center.rect.width * m_Columns) / 2) - (m_Center.rect.width / 2),
                                                ((m_Center.rect.height * m_Rows) / 2) - (m_Center.rect.height / 2));

        foreach (GameObject drg in m_Tiles)
        {
            drg.transform.SetParent(m_Center);
        }

        m_Center.anchoredPosition = new Vector2(0, 0);
    }