今天做了一个得分板的效果,看图
结构
对应的依次是 个位 十位 百位 千位
写脚本:
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;
啥意思,很简单了,好好体会吧。
NGUI-UISprite
时间: 2024-10-10 20:29:19