欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity3D UI Text得分?jǐn)?shù)字增加的實(shí)例代碼

 更新時(shí)間:2021年04月10日 10:38:57   作者:大可iii  
這篇文章主要介紹了Unity3D UI Text得分?jǐn)?shù)字增加方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

Unity3D UGUI Text得分?jǐn)?shù)字增加 代碼

一、首先在Hierarchy中創(chuàng)建Text,并綁定腳本。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;    **//導(dǎo)入資源庫(kù)**
public class Score : MonoBehaviour {
 public static Text txt;    **//定義靜態(tài)變量名以用于其他腳本內(nèi)的引用**
 public static float x = 0;
 void Start () 
 {
  txt = GameObject.Find ("Text").GetComponent<Text> ();  
 }
}

二、在確定變量名指定的組建后,對(duì)得分時(shí)情況進(jìn)行判斷。

這里進(jìn)入判斷綁定剛體是否碰撞的腳本。

using UnityEngine;
using System.Collections;
public class collision2 : MonoBehaviour {
 public GameObject bullet; 
 void OnCollisionEnter(Collision col)    **//當(dāng)剛體碰撞開(kāi)始時(shí)**
 {
  if (col.gameObject.name.Equals ("Bullet(Clone)")) 
  {
   Instantiate (bullet,col.transform.position,Quaternion.identity);
   Destroy(col.gameObject);  
   Score.x += 1;    **//剛體碰撞結(jié)束后得分加1**
   Score.txt.text = "Score : " + Score.x;    //在text文本中顯示Score : x
  }
 }

總結(jié):

這里的代碼示例是以制定剛體碰撞的開(kāi)始時(shí),進(jìn)行得分判斷。當(dāng)Bullet(Clone)與腳本綁定的剛體碰撞,便得分?jǐn)?shù) X+1 ,并在Score腳本中的txt中加上轉(zhuǎn)換成文本類(lèi)型后的X。

補(bǔ)充:Unity3D 數(shù)字逐漸增加,一個(gè)數(shù)字動(dòng)態(tài)變化到另一個(gè)數(shù)字(使用協(xié)程)

首先實(shí)現(xiàn)上述功能,需要使用“協(xié)程”這個(gè)功能。

協(xié)程

協(xié)程:控制代碼等到特定的時(shí)機(jī)后再執(zhí)行后續(xù)步驟.

先看Unity3D的函數(shù)執(zhí)行順序圖

官網(wǎng)鏈接:https://docs.unity3d.com/Manual/ExecutionOrder.html

以上協(xié)程函數(shù)定義:(yield 開(kāi)頭的便是)

yield null:協(xié)程將在下一幀所有腳本的Update執(zhí)行之后,再繼續(xù)執(zhí)行.

yield WaitForSeconds:協(xié)程在延遲指定時(shí)間,且當(dāng)前幀所有腳本的 Update全都執(zhí)行結(jié)束后才繼續(xù)執(zhí)行.

yield WaitForFixedUpdate:協(xié)程在所有腳本的FixedUpdate執(zhí)行之后,再繼續(xù)執(zhí)行.

yield WWW:協(xié)程在WWW下載資源完成后,再繼續(xù)執(zhí)行.

yield StartCoroutine:協(xié)程在指定協(xié)程執(zhí)行結(jié)束后,再繼續(xù)執(zhí)行.

WaitForSecondsRealtime:與WaitForSeconds類(lèi)似,但不受時(shí)間縮放影響.

WaitWhile:當(dāng)返回條件為假時(shí)才執(zhí)行后續(xù)步驟.

使用方法:

  void Start () {
        StartCoroutine(A());
    }
 
   IEnumerator A()   //加粗的必須要寫(xiě),函數(shù)名自己定義
    {   
        //yield return new WaitForSeconds(0.1f);   //這里可以用上述的函數(shù)
        StopCoroutine(A());
    }

PS:注意如果需要停停止其中某個(gè)協(xié)程,可使用StopCoroutine。但在使用時(shí),你需要注意一點(diǎn),停止協(xié)程的方式要與開(kāi)啟協(xié)程的方式一致。StopCoroutine(“A”)必須與StartCoroutine(“A”)成對(duì)使用,與StartCoroutine(A())一起使用則完全無(wú)效。

逐漸增加的實(shí)現(xiàn)

首先需要在unity世界里增加一個(gè)text,然后text加如下腳本

代碼如下:

int max;  //最終值
 int min;   //初始值
 int result = 0;
 public int change_speed = 5; //加的次數(shù)
    
// Use this for initialization
void Start () 
{
   StartCoroutine(Change());
}
 IEnumerator Change()
    {
        int delta = (max - min) / change_speed;   //delta為速度,每次加的數(shù)大小
 
        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());
    }
 

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評(píng)論