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; } }
/// <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 }
/// <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; }