7단계 확장 실습 01: 점수 변수와 UI 텍스트
📌 이 실습은?
멤버 변수(점수) 를 두고, 그 값을 UI Text 컴포넌트의 .text 에 넣어 화면에 표시하는 실습입니다.
이전 단계를 다 보지 않았어도 이 파일만 따라 하면 진행할 수 있습니다.
이전 단계 링크 (필요할 때만 참고):
- 7단계: 점수·레벨 시스템 — GameController, scoreText, UpdateUI()
- 멤버와 메소드 (개념) — 저장소와 그걸 다루는 함수
- 6단계 확장 실습 01 — 그리드와 행 검사 (선택)
🎯 목표
- 멤버 변수 score를 두고, 메소드 AddScore()로 값을 올린다.
- UnityEngine.UI 의 Text 컴포넌트를 참조해 .text 에 “Score: “ + score 를 넣어 갱신한다.
🛠️ 실습
이 실습 전용 씬 만들기 (환경 설정)
- File → New Scene → Basic (Built-in) 또는 Empty → Create
- File → Save As → 저장 위치: Assets/Scenes → 파일 이름: ConceptTest_Stage7_ScoreUI → Save
- 아래 실습은 모두 이 씬에서 진행합니다.
UI 준비 (Canvas + Text)
- Hierarchy 우클릭 → UI → Canvas
- Canvas 선택 상태에서 우클릭 → UI → Legacy → Text (또는 Text - TextMeshPro)
- Text 이름: “ScoreText”
- Inspector에서 Text 필드: “Score: 0”, Font Size: 24, Color: 흰색
- Rect Transform Pos X: 0, Pos Y: 0, Width: 200, Height: 50
수행 과정
- 빈 GameObject 생성
- Hierarchy 우클릭 → Create Empty → 이름: “Stage7ExpandTest”
- C# 스크립트 생성
- 이름:
Stage7ExpandTest
- 이름:
- 다음 코드 작성 ```csharp using UnityEngine; using UnityEngine.UI;
public class Stage7ExpandTest : MonoBehaviour { private int score = 0; public Text scoreText; // Inspector에서 ScoreText 할당
void Start()
{
UpdateUI();
AddScore(100);
UpdateUI();
AddScore(50);
UpdateUI();
}
void AddScore(int points)
{
score += points;
}
void UpdateUI()
{
if (scoreText != null)
scoreText.text = "Score: " + score;
} } ```
- 스크립트를 Stage7ExpandTest에 추가
- Stage7ExpandTest 선택 → Inspector에서 Score Text 칸에 Hierarchy의 ScoreText 를 끌어다 놓기
- Play
- Game 뷰에서 “Score: 0” → “Score: 100” → “Score: 150” 순서로 바뀌는지 확인 (Start에서 AddScore 두 번 호출)
-
직접 해보기: Update()에서 매 프레임 score += 1 하고 UpdateUI()를 부르면 점수가 계속 오르는지 확인해 보세요. (테스트 후 원래대로 되돌려도 됩니다.)
- 이어서: 8단계에서 쓰는 Instantiate·Random 실습이 궁금하면 → 8단계 확장 실습 01 - Instantiate와 Random
| ← 6단계 확장 실습 | 단계별 확장 실습 목차 | 8단계 확장 실습 → |