Unity3D UI Text 점수 숫자 증가 인 스 턴 스 코드

Unity3D UGUI Text 점수 숫자 증가 코드

1.우선 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> ();  
 }
}
2.변수 이름 이 지정 한 구성 을 확정 한 후에 득점 시 상황 을 판단 한다.
바 인 딩 강체 의 충돌 여 부 를 판단 하 는 스 크 립 트 에 들 어 갑 니 다.

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 의 함수 실행 순서 도 를 먼저 보 겠 습 니 다.

홈 페이지 링크
이상 협 정 함수 정의:(yield 가 시작 하 는 것 은)
yield null:협 정 은 다음 스 크 립 트 의 업데이트 가 실 행 된 후에 계속 실 행 됩 니 다.
yield WaitForSeconds:협 정 은 지 정 된 시간 을 지연 시 키 고 현재 프레임 의 모든 스 크 립 트 의 업데이트 가 모두 실 행 된 후에 야 계속 실 행 됩 니 다.
yield WaitForFixed Update:협 정 은 모든 스 크 립 트 의 Fixed Update 가 실 행 된 후에 계속 실 행 됩 니 다.
yield WWW:협 정 은 WWW 에서 자원 을 다운로드 한 후에 계속 실행 합 니 다.
yield Start Corotine:협 정 은 지정 협 정 집행 이 끝 난 후에 계속 집행 합 니 다.
WaitForSeconds Realtime:WaitForSeconds 와 유사 하지만 시간 크기 조정 에 영향 을 받 지 않 습 니 다.
Wait While:반환 조건 이 가짜 일 때 만 후속 절 차 를 수행 합 니 다.
사용 방법:

  void Start () {
        StartCoroutine(A());
    }
 
   IEnumerator A()   //       ,       
    {   
        //yield return new WaitForSeconds(0.1f);   //          
        StopCoroutine(A());
    }
PS:그 중 한 협 정 을 중단 할 필요 가 있 으 면 StopCoroutine 을 사용 할 수 있 습 니 다.그러나 사용 할 때 는 협 정 을 중단 하 는 방식 이 협 정 을 여 는 방식 과 일치 해 야 한 다 는 점 에 주의해 야 한다.StopCoroutine("A")은 StartCoroutine("A")과 쌍 을 지어 사용 해 야 하 며,StartCoroutine(A()과 함께 사용 하면 완전히 무효 입 니 다.
점차 증가 하 는 실현
우선 유 니 티 세계 에 text 를 추가 한 다음 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());
    }
 
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기