1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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);
- }
- }
|