示例#1
0
    public void OnDrag(PointerEventData data)
    {
        //Debug.Log(data.pressPosition.ToString());


        Vector2 delta = data.position - data.pressPosition;

        RectTransformUtility.ScreenPointToLocalPointInRectangle(
            transform.parent as RectTransform,
            data.position, data.pressEventCamera, out delta);

        delta -= m_drag_offset;

        transform.localPosition  = m_drag_start;
        transform.localPosition += new Vector3(delta.x, delta.y, 0);

        Vector2 in_world = Vector2.zero;

        RectTransformUtility.ScreenPointToLocalPointInRectangle(
            transform.parent as RectTransform,
            data.position, data.pressEventCamera, out in_world);
        Int2D pt = FGridView.GetGridsUnderPoint(Crt, in_world);

        if (FGridView.FGrid.CanBeReplace(Crt, pt))
        {
            FGridView.SetUnitColor(pt, Crt.Proto.Dim, Color.green);
        }
        else
        {
            FGridView.SetUnitColor(pt, Crt.Proto.Dim, Color.red);
        }
    }
示例#2
0
    public void OnBeginDrag(PointerEventData data)
    {
        m_drag_start = transform.localPosition;
        RectTransformUtility.ScreenPointToLocalPointInRectangle(
            transform.parent as RectTransform,
            data.position, data.pressEventCamera, out m_drag_offset);

        FGridView.SetVisible(true);
    }
示例#3
0
    public void OnEndDrag(PointerEventData data)
    {
        Vector2 in_world = Vector2.zero;

        RectTransformUtility.ScreenPointToLocalPointInRectangle(
            transform.parent as RectTransform,
            data.position, data.pressEventCamera, out in_world);
        Int2D pt = FGridView.GetGridsUnderPoint(Crt, in_world);

        FGridView.FGrid.Replace(Crt, pt);

        foreach (CreatureView cv in FGridView.Creatures.Values)
        {
            cv.UpdateTransform();
        }

        FGridView.SetVisible(false);
    }