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;를 추가해야 한다.