123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.UI;
- /// <summary>
- /// 自定义图片数字
- /// </summary>
- public class UI_NumberFontComponment : MonoBehaviour
- {
- /// <summary>
- /// 数字对象集合
- /// </summary>
- private Dictionary<string, GameObject> elements = new Dictionary<string, GameObject>();
- /// <summary>
- /// 当前数
- /// </summary>
- private int _curNum = -1;
- /// <summary>
- /// 设置
- /// </summary>
- public int CurrentNum
- {
- get
- {
- return _curNum;
- }
- set
- {
- if (_curNum != value)
- {
- _curNum = value;
- if (value < 0)
- {
- _curNum = 0;
- }
- onStarNumChanged();
- }
- }
- }
- /// <summary>
- /// 显示星星啦啦啦
- /// </summary>
- private void onStarNumChanged()
- {
- elements.Clear();
- //先清理掉其他不需要的
- for (int i = this.transform.childCount - 1; i >= 0; i--)
- {
- Transform rc = this.transform.GetChild(i);
- if (rc.name.IndexOf("Clone") < 0)
- {
- if (rc.name == "X" || rc.name == "+" || rc.name == "-")
- {
- }
- else
- {
- rc.gameObject.GetComponent<LayoutElement>().ignoreLayout = true;
- rc.gameObject.SetActive(false);
- elements.Add(rc.name, rc.gameObject);
- }
- continue;
- }
- else
- {
- Destroy(rc.gameObject);
- }
- }
- char[] arr = CurrentNum.ToString().ToCharArray();
-
- foreach (char c in arr)
- {
- int id = System.Convert.ToInt32(c);
- if (!elements.ContainsKey(c.ToString()))
- {
- continue;
- }
- GameObject go = elements[c.ToString()];
- ////创建新的
- GameObject card = (GameObject)Instantiate(go);
- card.transform.SetParent(this.transform);
- card.transform.localScale = Vector3.one;
- card.transform.localPosition = Vector3.zero;
-
- card.GetComponent<LayoutElement>().ignoreLayout = false;
- card.SetActive(true);
- }
- }
- }
|