Пример #1
0
 void SetIconVisible(Image2 image, float scale = 1)
 {
     image.color     = ComputeColor(spriteIcon.color);
     image.fillValue = 1;
     MadTransform.SetLocalScale(image.transform, new Vector3(scale, scale, scale));
     image.enabled = true;
 }
Пример #2
0
    private void UpdateTransform() {
        if (transformTranslate) {
            Vector2 translate = translateFunction.Value(ValueF2);

            Vector2 size;
            if (TryGetNativeSize(out size)) {
                imageObject.transform.localPosition = new Vector2(
                translate.x * size.x,
                translate.y * size.y);
            }
        }

        if (transformRotate) {
            Quaternion rotate = rotateFunction.Value(ValueF2);
            var localRotation = Quaternion.identity * Quaternion.Inverse(rotate);

            // ReSharper disable once RedundantCheckBeforeAssignment
            if (imageObject.transform.localRotation != localRotation) {
                imageObject.transform.localRotation = localRotation;
            }
        }

        if (transformScale) {
            Vector3 scale = scaleFunction.Value(ValueF2);
            MadTransform.SetLocalScale(imageObject.transform, scale);
        }
    }
Пример #3
0
        private void UpdateSize()
        {
            var thisRectTransform = rectTransform;

            for (int i = 0; i < createdChildren.Count; ++i)
            {
                var child = createdChildren[i];
                if (child.gameObject == imageObject.gameObject)
                {
                    continue;
                }

                var otherRectTransform = child.GetComponent <RectTransform>();
                if (otherRectTransform != null)
                {
                    SetSize(otherRectTransform, thisRectTransform.rect.size);
                }
            }

            // update container scale
            Vector2 nativeSize;

            if (TryGetNativeSize(out nativeSize))
            {
                var ratio = new Vector3(
                    thisRectTransform.rect.width / nativeSize.x,
                    thisRectTransform.rect.height / nativeSize.y, 1);
                MadTransform.SetLocalScale(imageObjectContainer.transform, ratio);
            }
        }
Пример #4
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);
            }
        }
Пример #5
0
    void SetIconVisible(MadSprite sprite) {
        bool wasInvisible = sprite.visible == false;

        sprite.tint = ComputeColor(tintIcon);
        sprite.fillValue = 1;
        MadTransform.SetLocalScale(sprite.transform, 1);
        sprite.visible = true;

        if (wasInvisible && onIconShow != null) {
            onIconShow(sprite);
        }
    }
Пример #6
0
        private void UpdateFollowEffect()
        {
            if (!effectFollow)
            {
                return;
            }

            UpdateEffectFollowDefaults();

            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 (effectFollowObject != null)
            {
                var        worldPos = imageBar.transform.TransformPoint(EdgePosition());
                GameObject obj      = effectFollowObject;
                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;
                }

                // if object contains Graphic, then manipulate the color
                var graphics = obj.GetComponent <Graphic>();
                if (graphics)
                {
                    graphics.color = color;
                }
            }
        }
Пример #7
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;
         }
         
     }
     
     
 }
Пример #8
0
 void SetSpriteVisible(MadSprite sprite) {
     sprite.tint = tintIcon;
     sprite.fillValue = 1;
     MadTransform.SetLocalScale(sprite.transform, 1);
     sprite.visible = true;
 }
Пример #9
0
 void UpdateSlot(MadSprite sprite) {
     if (sprite != null) {
         sprite.tint = ComputeColor(tintSlot);
         MadTransform.SetLocalScale(sprite.transform, 1);
     }
 }