본문 바로가기

카테고리 없음

1주차 6강 점수 올라가게 하기

Ground 부분에 점수 Board를 만들어야 한다.

점수, 남은 시간들을 남겨야 한다.

UI는 Canvas라는 도화지 위에 그려지고, 카메라 위치와는 관계 없이 보여진다.

- 버튼 / 텍스트 / 순위를 보여줄 때에만 써준다.

중요한 정보는 gameManage가 들고 있다.

하지만 빗방울을 맞았는지는 빗방울이나 캐릭터가 안다.

빗방울이나 캐릭터가 이 정보를 gameManager에게 알려준다.

gameManager는 싱글톤이여야 한다.(하나만 생성되어야 한다.)

addScore라는 함수를 만든다.

public void addScore(int score)
{
    totalScore += score;
}

 

빗방울 입장에서 캐릭터에게 부딪힐 때 점수 더하라고 코드를 작성한다.

if (coll.gameObject.tag == "rtan")
{
    Destroy(gameObject);
    gameManager.I.addScore(score);
}

이 때 I를 부르지 않으면 싱글톤으로 작업할 수 없다.

 

Unity UI 엔진을 사용하여 점수를 올린다.

public class gameManager : MonoBehaviour
{
    public GameObject rain;
    public static gameManager I;
    public Text scoreText;
    int totalScore;

    void Awake()
    {
        I = this;
    }
    // Start is called before the first frame update
    void Start()
    {
        InvokeRepeating("makeRain", 0, 0.5f);
    }

    // Update is called once per frame
    void Update()
    {


    }
    void makeRain()
    {
        Instantiate(rain);
    }

    public void addScore(int score)
    {
        totalScore += score;
        scoreText.text = totalScore.ToString();
    }
}

이 때 using UnityEngine.UI;를 추가해야 한다.