Unity3D UI 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());
}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity 공부 일지~블렌드 셰이프 조작 방법 그 ①게임을 만들고 싶다 ~라고 생각하고 마지막 날부터 Unity를 만지기 시작했습니다 HITOMI2236입니다. 이번 블렌드 셰이프에 대해 조사했으므로 여기에 기록하려고 합니다. 개인용 메모입니다만, 만약 같은 곳에서 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.