コード例 #1
0
 public Sprite(Texture2D texture, Rectangle sourceRectangle, RotationPoint rotationSource)
 {
     this.texture         = texture;
     this.sourceRectangle = sourceRectangle;
     hasSourceRectangle   = true;
     SetRotationSource(rotationSource);
 }
コード例 #2
0
    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();
    }
コード例 #3
0
 public Sprite(Animation animation, RotationPoint rotationSource)
 {
     this.animation     = animation;
     hasSourceRectangle = false;
     animationManager   = new AnimationManager(animation);
     SetRotationSource(rotationSource);
 }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
    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);
    }
コード例 #6
0
ファイル: Image.cs プロジェクト: ClassOdUa/tustan-ar
            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);
            }
コード例 #7
0
 public Sprite(Texture2D texture, RotationPoint rotationSource)
 {
     this.texture       = texture;
     hasSourceRectangle = false;
     SetRotationSource(rotationSource);
 }
コード例 #8
0
 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();
 }