using System; using UnityEngine; [AddComponentMenu("NGUI/Tween/Tween Alpha")] public class TweenAlpha : UITweener { [Obsolete("Use 'value' instead")] public float alpha { get { return this.value; } set { this.value = value; } } private void Cache() { this.mCached = true; this.mRect = base.GetComponent(); this.mSr = base.GetComponent(); if (this.mRect == null && this.mSr == null) { Renderer component = base.GetComponent(); if (component != null) { this.mMat = component.material; } if (this.mMat == null) { this.mRect = base.GetComponentInChildren(); } } } public float value { get { if (!this.mCached) { this.Cache(); } if (this.mRect != null) { return this.mRect.alpha; } if (this.mSr != null) { return this.mSr.color.a; } return (!(this.mMat != null)) ? 1f : this.mMat.color.a; } set { if (!this.mCached) { this.Cache(); } if (this.mRect != null) { this.mRect.alpha = value; } else if (this.mSr != null) { Color color = this.mSr.color; color.a = value; this.mSr.color = color; } else if (this.mMat != null) { Color color2 = this.mMat.color; color2.a = value; this.mMat.color = color2; } } } protected override void OnUpdate(float factor, bool isFinished) { this.value = Mathf.Lerp(this.from, this.to, factor); } public static TweenAlpha Begin(GameObject go, float duration, float alpha) { TweenAlpha tweenAlpha = UITweener.Begin(go, duration); tweenAlpha.from = tweenAlpha.value; tweenAlpha.to = alpha; if (duration <= 0f) { tweenAlpha.Sample(1f, true); tweenAlpha.enabled = false; } return tweenAlpha; } public override void SetStartToCurrentValue() { this.from = this.value; } public override void SetEndToCurrentValue() { this.to = this.value; } [Range(0f, 1f)] public float from = 1f; [Range(0f, 1f)] public float to = 1f; private bool mCached; private UIRect mRect; private Material mMat; private SpriteRenderer mSr; }