UGUI研究之Sprite
UGUI研究之Sprite
學習untiy已經有一段不短的時間,一直沒有有效的記錄下來,實在遺憾,今天開始記錄。 2017 - 01 - 13
最近在寫蠻牛的一個每月訓練營,超級瑪麗,包括UI的切換,獲取金幣的記錄等效果,其中用到記錄場景中金幣獲取數量的地方,用sprite來實現。
-
-* *
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class CoinNumContorller : MonoBehaviour {
public Sprite[] NumberImage;
public void SetCoinValue(int value)
{
value = Mathf.Clamp(value, 0, NumberImage.Length); //value的範圍在0-9
this.GetComponent<Image>().sprite = NumberImage[value]; //獲取到圖片數字元件
}
}
直接上程式碼,這段程式碼是配置圖集的,將此程式碼的.cs檔案拖拽到image上
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Sprites;
using UnityEditor;
using UnityEditor.Sprites;
using System;
public class Gaming : MonoBehaviour {
// Use this for initialization
public CoinNumContorller CoinFirst;
public CoinNumContorller CoinSecond;
public CoinNumContorller CoinThird;
public static int CoinValue;
public void UpdateCoinValue(int value)
{
value = Mathf.Clamp(value , 0 , 999);
CoinValue = value;
var stringValue = value.ToString(); //把value轉換成字串型別
if (stringValue.Length <= 1)
{
CoinFirst.GetComponent<Image>().enabled = true;
CoinFirst.SetCoinValue((int)Char.GetNumericValue(stringValue[0])); //獲取字串的第一位
CoinSecond.GetComponent<Image>().enabled = false;
CoinThird.GetComponent<Image>().enabled = false;
}
else if (stringValue.Length == 2)
{
CoinFirst.GetComponent<Image>().enabled = true;
CoinSecond.GetComponent<Image>().enabled = true;
CoinThird.GetComponent<Image>().enabled = false;
CoinFirst.SetCoinValue((int)Char.GetNumericValue(stringValue[0]));
CoinSecond.SetCoinValue((int)Char.GetNumericValue(stringValue[1]));
}
else
{
CoinFirst.GetComponent<Image>().enabled = true;
CoinSecond.GetComponent<Image>().enabled = true;
CoinThird.GetComponent<Image>().enabled = true;
CoinFirst.SetCoinValue((int)Char.GetNumericValue(stringValue[0]));
CoinSecond.SetCoinValue((int)Char.GetNumericValue(stringValue[1]));
CoinThird.SetCoinValue((int)Char.GetNumericValue(stringValue[2]));
}
}
void Start () {
}
// Update is called once per frame
void Update () {
UpdateCoinValue(CoinController.CoinNum); //更新獲取到的金幣數量
}
}
總結一下,其實方法很簡單,就是建立一個Sprite的陣列,用來存每一個圖集的數字,然後根據需求顯示出來
發現一個方法很簡單的處理顯示數字第幾位的方法,如上圖所示
CoinFirst.SetCoinValue((int)Char.GetNumericValue(stringValue[0]));
//獲取字串的第幾位,先把Int轉換成String,然後獲取
參考部落格:
轉自蠻牛一個博主的實現方法:
相關文章
- css spriteCSS
- UGUI的深度UGUI
- UGUI動畫效果UGUI動畫
- Unity 之 UGUI Scroll Rect滾動矩形元件詳解UnityUGUI元件
- svg sprite 封裝SVG封裝
- HTML CSS SPRITE 工具HTMLCSS
- 淺談SVG SpriteSVG
- 【UGUI原始碼分析】Unity遮罩之Mask詳細解讀UGUI原始碼Unity遮罩
- unity3d UGUI教程之-UGUI 實現刮刮卡橡皮擦Unity3DUGUI
- UGUI全面實踐教程UGUI
- SVG Sprite 使用簡介SVG
- Sprite Kit教程:初學者
- STM32 + RTThread + UGUIthreadUGUI
- UGUI_Text的顯示UGUI
- Unity UGUI——Rect Transform包(Anchors)UnityUGUIORM
- SVG Sprite 技術實踐SVG
- 常用Sprite Kit外掛整理
- 【UGUI原始碼分析】Unity遮罩之RectMask2D詳細解讀UGUI原始碼Unity遮罩
- UGUI_關卡選項介面UGUI
- [Unity] UGUI優化 - 知識點UnityUGUI優化
- [Unity UGUI]點選和長按UnityUGUI
- Three.js Sprite原始碼解析JS原始碼
- Unity遮罩之Mask、RectMask2D與Sprite Mask適用場景分析Unity遮罩
- iOS遊戲框架Sprite Kit基礎教程第1章編寫第一個Sprite Kit程式iOS遊戲框架
- Unity 任意區域截圖建立SpriteUnity
- css Sprite 動畫效果程式碼例項CSS動畫
- ispriter自動構建css-spriteCSS
- ios之Block研究iOSBloC
- UGUI原始碼解析(Toggle和ToggleGroup)UGUI原始碼
- 使用Shader進行UGUI的優化UGUI優化
- 【Unity3D ugui】使用藝術字Unity3DUGUI
- 【Unity】UGUI模擬NGUI的UISprite-->LImageUnityUGUINGUI
- css sprite 及圖片優化那些事CSS優化
- VUE-cli3使用 svg-sprite-loaderVueSVG
- Liferay前端效能調優(5)sprite圖片前端
- Sprite kit 每秒間隔 update 頻率偽造
- NGUI和UGUI改變字型顏色的寫法NGUIUGUI
- UGUI的優點新UI系統四 開源UGUI