using UnityEngine; 
 | 
using System.Collections; 
 | 
  
 | 
namespace vnxbqy.UI { 
 | 
    public class PingPongScale:MonoBehaviour { 
 | 
  
 | 
        public Transform reference; 
 | 
        public Vector3 amplitue; 
 | 
        public float speed; 
 | 
  
 | 
        Vector3 referenceScale = Vector3.zero; 
 | 
  
 | 
        void OnEnable() { 
 | 
            referenceScale = reference == null ? this.transform.localScale : reference.localScale; 
 | 
        } 
 | 
  
 | 
        float x = 0f; 
 | 
        float y = 0f; 
 | 
        float z = 0f; 
 | 
        void LateUpdate() { 
 | 
  
 | 
            if(Mathf.Abs(amplitue.x) > 0.001f) { 
 | 
                x = referenceScale.x - amplitue.x * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.x); 
 | 
            } 
 | 
            else { 
 | 
                x = referenceScale.x; 
 | 
            } 
 | 
  
 | 
            if(Mathf.Abs(amplitue.y) > 0.001f) { 
 | 
                y = referenceScale.y - amplitue.y * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.y); 
 | 
            } 
 | 
            else { 
 | 
                y = referenceScale.y; 
 | 
            } 
 | 
  
 | 
            if(Mathf.Abs(amplitue.z) > 0.001f) { 
 | 
                z = referenceScale.z - amplitue.z * 0.5f + Mathf.PingPong(Time.time * speed,amplitue.z); 
 | 
            } 
 | 
            else { 
 | 
                z = referenceScale.z; 
 | 
            } 
 | 
  
 | 
            this.transform.localScale = new Vector3(x,y,z); 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |