Esempio n. 1
0
    public void OnEndDrag(PointerEventData eventData)
    {
        if (!m_Draggable)
        {
            return;
        }

        // Play sound
        QuestionCanvas.GetInstance().PlayTickSound();

        // Temporarely move draggable object back to initial location
        ResetInstance();

        // Perform a raycast at mouse pointer position
        RaycastHit2D hit = Physics2D.Raycast(Input.mousePosition, Vector3.forward, 10.0f);

        // Check if raycast hit was a non-static question tile
        if (hit && hit.transform.gameObject.tag.Equals(TARGET_TAG))
        {
            // Get a reference to this question tile
            QuestionTile tile = hit.transform.GetComponent <QuestionTile>();

            // If non-static and not occupied, slot this value
            if (!tile.IsStatic() && !tile.IsSlotted())
            {
                transform.position = tile.transform.position;
                tile.SlotValue(GetValue());
            }
        }
    }
Esempio n. 2
0
    // Events -------------------------------------------------------------

    public void OnBeginDrag(PointerEventData eventData)
    {
        if (!m_Draggable)
        {
            return;
        }

        // Play sound
        QuestionCanvas.GetInstance().PlayTickSound();

        // Get offset
        m_CurrentOffset = transform.position - Input.mousePosition;

        // Temporarely move object
        Vector3 tempPosition = m_CurrentOffset + Input.mousePosition;

        transform.position = m_InitialLocation;

        // Determine if there was a tile underneath
        RaycastHit2D hit = Physics2D.Raycast(Input.mousePosition, Vector3.forward, 10.0f);

        // Check if raycast hit was a non-static question tile
        if (hit && hit.transform.gameObject.tag.Equals(TARGET_TAG))
        {
            // Get a reference to this question tile
            QuestionTile tile = hit.transform.GetComponent <QuestionTile>();

            // Reset the tile
            tile.ResetInstance();
        }

        // Move object back to original position
        transform.position = tempPosition;
    }