Пример #1
0
    private void UpdateSpriteSize(Vector2 originPosition, Image2 image, Rect spriteRect) {
        float posX = originPosition.x * scaleRatio.x;
        float posY = originPosition.y * scaleRatio.y;

        MadTransform.SetLocalPosition(image.rectTransform, new Vector3(posX, posY));
        SetSize(image.rectTransform, new Vector2(spriteRect.width * scaleRatio.x, spriteRect.height * scaleRatio.y));
    }
Пример #2
0
        private void UpdateBarScaleAndOffset()
        {
            if (imageBar != null)
            {
                var   pivot = rectTransform.pivot;
                var   rect  = imageBar.rectTransform.rect;
                float ox    = -(pivot.x - 0.5f) * rect.width;
                float oy    = -(pivot.y - 0.5f) * rect.height;
                var   computedLocalPosition = new Vector3(barImageOffset.x + ox, barImageOffset.y + oy, barImageOffset.z);

                MadTransform.SetLocalScale(imageBar.transform, barImageScale);

                MadTransform.SetLocalPosition(imageBar.transform, computedLocalPosition);

                if (effectTilledImageBarMask != null)
                {
                    MadTransform.SetLocalScale(effectTilledImageBarMask.transform, barImageScale);
                    MadTransform.SetLocalPosition(effectTilledImageBarMask.transform, computedLocalPosition);
                }
            }
            if (imageBurn != null)
            {
                var   pivot = rectTransform.pivot;
                var   rect  = imageBurn.rectTransform.rect;
                float ox    = -(pivot.x - 0.5f) * rect.width;
                float oy    = -(pivot.y - 0.5f) * rect.height;
                var   computedLocalPosition = new Vector3(barImageOffset.x + ox, barImageOffset.y + oy, barImageOffset.z);

                MadTransform.SetLocalScale(imageBurn.transform, barImageScale);

                MadTransform.SetLocalPosition(imageBurn.transform, computedLocalPosition);
            }
        }
Пример #3
0
    private void UpdateBarOffset(Image bar) {
        var pivot = rectTransform.pivot;
        var rect = bar.rectTransform.rect;
        float ox = -(pivot.x - 0.5f) * rect.width;
        float oy = -(pivot.y - 0.5f) * rect.height;

        var computedLocalPosition = new Vector3(
            bar.transform.localPosition.x + barImageOffset.x + ox,
            bar.transform.localPosition.y + barImageOffset.y + oy,
            barImageOffset.z);

        MadTransform.SetLocalPosition(bar.transform, computedLocalPosition);
    }
Пример #4
0
    private void UpdateScreenSpace() {
        if (cameraReference == null) {
            Debug.LogError("Render Camera must be set for the follow script to work.", this);
            return;
        }
        var rect = canvas.pixelRect;

        var w2 = rect.width / 2;
        var h2 = rect.height / 2;

        var screenPoint = cameraReference.WorldToScreenPoint(followObject.transform.position);
        var pos = screenPoint + offset - new Vector3(w2, h2);
        pos = new Vector3(pos.x / canvas.scaleFactor, pos.y / canvas.scaleFactor);

        MadTransform.SetLocalPosition(transform, pos);
    }
Пример #5
0
 void UpdateFollowEffect() {
     if (!effectFollow) {
         return;
     }
     
     Color color = effectFollowColor.Evaluate(ValueF2);
     float scaleX = effectFollowScaleX.Evaluate(ValueF2);
     float scaleY = effectFollowScaleY.Evaluate(ValueF2);
     float scaleZ = effectFollowScaleZ.Evaluate(ValueF2);
     float rotation = effectFollowRotation.Evaluate(ValueF2) * 360;
     
     if (effectFollowSprite != null) {
         MadTransform.SetLocalPosition(effectFollowSprite.transform, EdgePosition());
         MadTransform.SetLocalScale(effectFollowSprite.transform, new Vector3(scaleX, scaleY, scaleZ));
         effectFollowSprite.tint = color;
         var newEulerAngles = new Vector3(0, 0, rotation);
         if (effectFollowSprite.transform.localEulerAngles != newEulerAngles) {
             effectFollowSprite.transform.localEulerAngles = newEulerAngles;
         }
     } else if (effectFollowObject != null && effectFollowObject is GameObject) {
         var worldPos = spriteBar.transform.TransformPoint(EdgePosition());
         GameObject obj = effectFollowObject as GameObject;
         MadTransform.SetPosition(obj.transform, worldPos);
         MadTransform.SetLocalScale(obj.transform, new Vector3(scaleX, scaleY, scaleZ));
         if (obj.GetComponent<Renderer>() != null) {
             obj.GetComponent<Renderer>().sharedMaterial.color = color;
         }
         var newEulerAngles = new Vector3(0, 0, rotation);
         if (obj.transform.localEulerAngles != newEulerAngles) {
             obj.transform.localEulerAngles = newEulerAngles;
         }
         
     }
     
     
 }