今天做了一个得分板的效果,看图
结构
对应的依次是 个位 十位 百位 千位
写脚本:
using UnityEngine;
using System.Collections;
using System;
public class Number : MonoBehaviour
{
private UISprite[] sprites;
private UIAtlas traceAtlas;
public int num=0;
// Use this for initialization
void Start ()
{
sprites = GetComponentsInChildren<UISprite> ();
//Debug.Log ("******"+sprites.Length);
}
// Update is called once per frame
void Update ()
{
DisplayNumber (num);
}
//将数值肢解 每一位对应图片进行显示
void DisplayNumber(int number){
for (int i=0; i<4; i++) {
int t=number/(int)Math.Pow(10,i)%10;
sprites [i].spriteName = ""+t;
}
}
}
绑定在NumPanel上面。
思路是获取现面的所有子Sprite插件(其实一共有5个,地图还有一个,不过按照顺序它的序列为4,从0开始)。
注意一点 Math类在System中,需要引入System,还有得到的是double类型值,需强转int进行除法。
核心的一句代码 就是
sprites [i].spriteName = ""+t;
啥意思,很简单了,好好体会吧。