UGUI研究之Sprite
来源:互联网 发布:复杂sql 语句编写经验 编辑:程序博客网 时间:2024/05/17 04:43
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,然后获取
参考博客:
转自蛮牛一个博主的实现方法:
0 0
- UGUI研究之Sprite
- ugui Sprite更换图片
- ugui sprite替换方法
- UGUI 动态切换Sprite
- Unity - UGUI - Sprite 如何打包
- NGUI研究之Sprite精灵与精灵动画的使用
- UGUI学习——Sprite Pack
- 【ugui的坑】实现可拖拽的Sprite
- UGUI -- 原生Sprite 处理小扩展
- UGUI中动态改变image的sprite
- UGUI 图集打包工具Sprite Packer
- UGUI打包图集工具插件Simple Sprite Packer
- unity UGUI实现类似NGUI切换Sprite的方式
- UGUI Sprite Packer:图集自动ETC1+Alpha
- Unity2D——如何使Sprite显示在UGUI前面
- iOS7之Sprite Kit
- lua 之 sprite
- UnityUGUI系统之Sprite
- iOS开发基本功的那些事儿(未完待续)
- LeetCode 441 Arranging Coins
- 二维数组中的查找
- python基本爬虫实现
- 程序员面试金典: 9.13 C和C++ 13.1 用C++方法,打印输入文件的最后K行。
- UGUI研究之Sprite
- WINDWOS编程学习1:WINMsg
- 微信小程序 —— 开发者初步
- js的call函数"源码"
- 全排列
- WINDOWS编程学习2:C windwos编程中常用的头文件的说明
- WINDWOS编程学习3:windwos HolleMessage程序说明
- 替换空格
- Unity3D手游开发日记(11) - 基于共享骨骼简单高效的换装方案