public Sprite(Texture2D texture, Rectangle sourceRectangle, RotationPoint rotationSource) { this.texture = texture; this.sourceRectangle = sourceRectangle; hasSourceRectangle = true; SetRotationSource(rotationSource); }
public void AddRotationPoint(Vector3 mouseLocation) { int index; if (rotationPoints == null) { rotationPoints = new List <RotationPoint>(); } Vector3 closestPoint = FindClosestIntersect.Search(points, mouseLocation, out index); // The new point should at the middle of the 2 points. index++; RotationPoint rotationPoint = new RotationPoint(); rotationPoint.position = closestPoint; rotationPoint.rotation = Quaternion.identity; rotationPoint.index = index; rotationPoint.range = mutatorStrength; rotationPoints.Add(rotationPoint); points.Insert(index, closestPoint); addingRotationPoint = false; foreach (RotationPoint rotPoint in rotationPoints) { if (rotPoint.index > index) { rotPoint.index++; } } GenerateAnimation(); }
public Sprite(Animation animation, RotationPoint rotationSource) { this.animation = animation; hasSourceRectangle = false; animationManager = new AnimationManager(animation); SetRotationSource(rotationSource); }
public void SetRotationSource(RotationPoint rotationSource) { switch (rotationSource) { case RotationPoint.bottomMiddle: this.rotationSource = new Vector2(width / 2f, height); break; case RotationPoint.topLeft: this.rotationSource = Vector2.Zero; break; } }
public RotationPoint getClosetestRotationPoint(Vector3 point) { RotationPoint closetRotPoint = rotationPoints[0]; float closetsDistance = Vector3.Distance(point, closetRotPoint.position); if (rotationPoints != null) { foreach (RotationPoint rotPoint in rotationPoints) { float dist = Vector3.Distance(rotPoint.position, point); if (dist < closetsDistance) { closetsDistance = dist; closetRotPoint = rotPoint; } } } return(closetRotPoint); }
public IImageBuilder SetRotationPoint(RotationPoint rotationPoint) { image.rotationPoint = rotationPoint; Vector3 rotationPointVector = image.clickable.transform.position; // rotate around center by default if (rotationPoint == RotationPoint.Center) { rotationPointVector = image.clickable.transform.position; } else if (rotationPoint == RotationPoint.Bottom) { rotationPointVector = image.clickable.transform.position - new Vector3(0, image.clickable.GetComponent <RectTransform>().sizeDelta.y / 2f); } image.rotationCase = new RotationCase() { gameObject = image.clickable, rotationPoint = rotationPointVector }; RotationHandler.RotationCases.Add(image.rotationCase); return(this); }
public Sprite(Texture2D texture, RotationPoint rotationSource) { this.texture = texture; hasSourceRectangle = false; SetRotationSource(rotationSource); }
public void AddRotationPoint(Vector3 mouseLocation) { int index; if (rotationPoints == null) { rotationPoints = new List<RotationPoint>(); } Vector3 closestPoint = FindClosestIntersect.Search(points, mouseLocation, out index); RotationPoint rotationPoint = new RotationPoint(); rotationPoint.position = closestPoint; rotationPoint.rotation = Quaternion.identity; rotationPoint.index = index; rotationPoint.range = mutatorStrength; rotationPoints.Add(rotationPoint); points.Insert(index, closestPoint); addingRotationPoint = false; foreach (RotationPoint rotPoint in rotationPoints) { if (rotPoint.index > index) { rotPoint.index++; } } GenerateAnimation(); }