using UnityEngine; using UnityEngine.UI; using System.Collections; public class MyRankPanel : MonoBehaviour { public Text titleTxt; public Text rankTxt; public Animator animator; public int startRank; private int step = 1; public int targetRank; private bool isShow; private bool isDone; void Awake() { titleTxt.text = Language.GetStr("LeaderBoard", "myRank"); } // Use this for initialization void Start () { rankTxt.text = startRank.ToString (); Debuger.LogWarning (string.Format("my rank from {0} to {1}", startRank, targetRank)); int deltaRank = Mathf.Abs (targetRank - startRank); if (deltaRank > 60 * 3 * 2) { step = Mathf.FloorToInt (deltaRank / 60 / 3); step = Mathf.Max (step, 1); } } public void Shown() { isShow = true; } // Update is called once per frame void Update () { if(!isDone && isShow) { float sign = Mathf.Sign (targetRank - startRank); startRank += step * (int)sign; startRank = (sign > 0 ? Mathf.Min (startRank, targetRank) : Mathf.Max (startRank, targetRank)); if(startRank == targetRank) { isDone = true; animator.Play ("Alert"); } rankTxt.text = startRank.ToString (); } } public void Close() { Destroy (this.gameObject); } }