服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - Unity3D UI Text得分数字增加的实例代码

Unity3D UI Text得分数字增加的实例代码

2022-11-11 13:47大可iii C#

这篇文章主要介绍了Unity3D UI Text得分数字增加方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Unity3D UGUI Text得分数字增加 代码:

Unity3D UI Text得分数字增加的实例代码

一、首先在Hierarchy中创建Text,并绑定脚本。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;    **//导入资源库**
public class Score : MonoBehaviour {
public static Text txt;    **//定义静态变量名以用于其他脚本内的引用**
public static float x = 0;
void Start () 
{
txt = GameObject.Find ("Text").GetComponent<Text> ();  
}
}

二、在确定变量名指定的组建后,对得分时情况进行判断。

这里进入判断绑定刚体是否碰撞的脚本。

using UnityEngine;
using System.Collections;
public class collision2 : MonoBehaviour {
public GameObject bullet; 
void OnCollisionEnter(Collision col)    **//当刚体碰撞开始时**
{
if (col.gameObject.name.Equals ("Bullet(Clone)")) 
{
 Instantiate (bullet,col.transform.position,Quaternion.identity);
 Destroy(col.gameObject);  
 Score.x += 1;    **//刚体碰撞结束后得分加1**
 Score.txt.text = "Score : " + Score.x;    //在text文本中显示Score : x
}
}

总结:

这里的代码示例是以制定刚体碰撞的开始时,进行得分判断。当Bullet(Clone)与脚本绑定的刚体碰撞,便得分数 X+1 ,并在Score脚本中的txt中加上转换成文本类型后的X。

补充:Unity3D 数字逐渐增加,一个数字动态变化到另一个数字(使用协程)

首先实现上述功能,需要使用“协程”这个功能。

 

协程

协程:控制代码等到特定的时机后再执行后续步骤.

先看Unity3D的函数执行顺序图

Unity3D UI Text得分数字增加的实例代码

官网链接:https://docs.unity3d.com/Manual/ExecutionOrder.html

以上协程函数定义:(yield 开头的便是)

yield null:协程将在下一帧所有脚本的Update执行之后,再继续执行.

yield WaitForSeconds:协程在延迟指定时间,且当前帧所有脚本的 Update全都执行结束后才继续执行.

yield WaitForFixedUpdate:协程在所有脚本的FixedUpdate执行之后,再继续执行.

yield WWW:协程在WWW下载资源完成后,再继续执行.

yield StartCoroutine:协程在指定协程执行结束后,再继续执行.

WaitForSecondsRealtime:与WaitForSeconds类似,但不受时间缩放影响.

WaitWhile:当返回条件为假时才执行后续步骤.

使用方法:

void Start () {
      StartCoroutine(A());
  }

 IEnumerator A()   //加粗的必须要写,函数名自己定义
  {   
      //yield return new WaitForSeconds(0.1f);   //这里可以用上述的函数
      StopCoroutine(A());
  }

PS:注意如果需要停停止其中某个协程,可使用StopCoroutine。但在使用时,你需要注意一点,停止协程的方式要与开启协程的方式一致。StopCoroutine(“A”)必须与StartCoroutine(“A”)成对使用,与StartCoroutine(A())一起使用则完全无效。

 

逐渐增加的实现

首先需要在unity世界里增加一个text,然后text加如下脚本

Unity3D UI Text得分数字增加的实例代码

代码如下:

int max;  //最终值
int min;   //初始值
int result = 0;
public int change_speed = 5; //加的次数
  
// Use this for initialization
void Start () 
{
 StartCoroutine(Change());
}
IEnumerator Change()
  {
      int delta = (max - min) / change_speed;   //delta为速度,每次加的数大小

      result = min;

      for(int i = 0;i<change_speed;i++)
      {
          result += delta;
          this.GetComponent<Text>().text = result.ToString();
          yield return new WaitForSeconds(0.1f);     //每 0.1s 加一次
      }
      this.GetComponent<Text>().text = max.ToString();
      StopCoroutine(Change());
  }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/weixin_43778515/article/details/84385701

延伸 · 阅读

精彩推荐
  • C#深入分析c# 继承

    深入分析c# 继承

    这篇文章主要介绍了c# 继承的相关资料,文中讲解的非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    菜鸟教程7372022-09-27
  • C#C#无损转换Image为Icon的方法

    C#无损转换Image为Icon的方法

    这篇文章主要为大家详细介绍了C#无损转换Image为Icon的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    AhDung5212021-12-30
  • C#C#条码生成及打印实例代码

    C#条码生成及打印实例代码

    这篇文章主要为大家详细介绍了C#条码生成及打印实例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    SinoCome6612021-12-09
  • C#C# 10个常用特性汇总

    C# 10个常用特性汇总

    这篇文章主要介绍了C# 10个常用特性,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    一傻小冲5652022-09-23
  • C#关于C#结构体 你需要知道的

    关于C#结构体 你需要知道的

    这篇文章主要介绍了关于C#结构体的相关知识,以及使用方法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...

    Tynam Yang7752022-09-09
  • C#winform 调用摄像头扫码识别二维码的实现步骤

    winform 调用摄像头扫码识别二维码的实现步骤

    这篇文章主要介绍了winform 调用摄像头扫码识别二维码的实现步骤,帮助大家更好的理解和学习使用winform,感兴趣的朋友可以了解下...

    随风去远方10002022-11-01
  • C#C#中split用法实例总结

    C#中split用法实例总结

    这篇文章主要介绍了C#中split用法,结合实例形式总结分析了C#常见的split操作字符串相关技巧,需要的朋友可以参考下...

    雨竹9592021-11-26
  • C#C# 开发(创蓝253)手机短信验证码接口的实例

    C# 开发(创蓝253)手机短信验证码接口的实例

    下面小编就为大家分享一篇C# 开发(创蓝253)手机短信验证码接口的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    C#教程网3792022-02-17