예제 #1
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;
                }
            }
        }
예제 #2
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;
         }
         
     }
     
     
 }
예제 #3
0
 private void UpdateFollowObjectWorldSpace() {
     MadTransform.SetPosition(transform, followObject.transform.position + offset);
 }