public void Offset(OffsetTypes offsetType, params float[] offsets)
        {
            var result = Transformer2D.Offset(offsets, new IDot[] { StartPoint, EndPoint });

            StartPoint = result[0];
            EndPoint   = result[1];
        }
 /// <summary>
 /// Updates this element's transformer component (for enabling draggable/rotatable/scalable properties).
 /// </summary>
 private void UpdateTransformer2D()
 {
     if ((m_isDraggable || m_isRotatable || m_isScalable) &&
         (m_transformer2D == null || !m_transformer2D.enabled))
     {
         m_transformer2D         = this.gameObject.AddComponentNoDupe <Transformer2D>();
         m_transformer2D.enabled = true;
     }
     else if (m_transformer2D != null && !m_isDraggable && !m_isRotatable && !m_isScalable)
     {
         Destroy(m_transformer2D);
         m_transformer2D = null;
     }
 }
Example #3
0
    /// <summary>
    /// Initialize all components.
    /// </summary>
    protected virtual void InitializeComponents()
    {
        m_isPressablePrev = m_isPressable;
        m_isDraggablePrev = m_isDraggable;
        m_isFlickablePrev = m_isFlickable;

        // Make sure element has a SpriteRenderer component
        m_spriteRenderer = this.GetComponent <SpriteRenderer>();
        if (m_spriteRenderer == null)
        {
            m_spriteRenderer = this.GetComponentInChildren <SpriteRenderer>();
            if (m_spriteRenderer == null)
            {
                m_spriteRenderer = this.gameObject.AddComponent <SpriteRenderer>();
            }
        }
        // Make sure the elment has a Collider2D component if it needs one
        if (m_isPressable || m_isDraggable || m_isFlickable)
        {
            AddOrGetComponentCollider2D();
        }
        // Make sure element has a PressGesture component if it needs one
        if (m_isPressable)
        {
            m_pressGesture = this.gameObject.AddComponentNoDupe <PressGesture>();
            AddPressDelegate(OnObjectPress);
            AddReleaseDelegate(OnObjectRelease);
        }
        // Make sure element has a SimplePanGesture component if it needs one
        // Make sure element has a Transformer2D component if it needs one
        if (m_isDraggable)
        {
            m_simplePanGesture = this.gameObject.AddComponentNoDupe <SimplePanGesture>();
            m_transformer2D    = this.gameObject.AddComponentNoDupe <Transformer2D>();
        }
        // Make sure element has a FlickGesture component if it needs one
        if (m_isFlickable)
        {
            m_flickGesture = this.gameObject.AddComponentNoDupe <FlickGesture>();
        }

        // No need for ReleaseGesture - this script has a different implementation for release
    }
Example #4
0
    /// <summary>
    /// Updates the IsDraggable property
    /// Components are added/enabled/disabled as needed
    /// </summary>
    protected void UpdateIsDraggableField()
    {
        if (m_isDraggable == m_isDraggablePrev)
        {
            return;
        }

        if (m_isDraggable)
        {
            AddOrGetComponentCollider2D();
            m_simplePanGesture         = this.gameObject.AddComponentNoDupe <SimplePanGesture>();
            m_transformer2D            = this.gameObject.AddComponentNoDupe <Transformer2D>();
            m_simplePanGesture.enabled = true;
        }
        else
        {
            if (m_simplePanGesture != null)
            {
                m_simplePanGesture.enabled = false;
            }
        }

        m_isDraggablePrev = m_isDraggable;
    }