변수 (Variable)
📖 개념 설명
변수는 데이터를 저장하는 상자입니다.
int score = 0; // 정수(숫자)를 저장하는 상자
string name = "홍길동"; // 문자열(글자)을 저장하는 상자
float speed = 1.5f; // 소수점 숫자를 저장하는 상자
bool isGameOver = false; // 참/거짓을 저장하는 상자
왜 사용하나요?
- 게임 점수를 저장하고 싶을 때
- 플레이어 이름을 기억하고 싶을 때
- 게임이 끝났는지 확인하고 싶을 때
테트리스 예시:
int score = 0; // 점수를 저장
int level = 1; // 레벨을 저장
멤버 변수 vs 로컬 변수
- 로컬 변수: 메소드 안에서 선언한 변수. 그 메소드가 실행되는 동안만 존재. (아래 실습의
score,level,playerName은 Start() 안에 있으므로 로컬 변수) - 멤버 변수: 클래스 안, 메소드 밖에서 선언한 변수. 객체가 있는 동안 유지되고 여러 메소드에서 쓸 수 있음.
차이와 이름·위치 컨벤션은 멤버 변수와 로컬 변수 문서를 보세요.
🛠️ 실습: 변수로 값 저장하고 출력하기
목표: 변수에 값을 저장하고 Console에 출력해 봅니다.
이 실습은 “로컬 변수만” 사용합니다. (메소드 안에서 선언한 변수 = 그 메소드가 끝나면 사라짐)
실습 단계
| 단계 | 할 일 | 구분 |
|---|---|---|
| 1단계 | 로컬 변수만 사용하기 (아래 수행 과정) | 로컬 변수 = Start() 안에서만 선언·사용 |
| 2단계 | 멤버 변수 실습이 궁금하면 → 멤버 변수와 로컬 변수 문서의 실습 1·2·3단계로 이어가기 | 멤버 변수 = 클래스 안, 메소드 밖 |
이 실습 전용 씬 만들기 (환경 설정)
먼저 이 실습 전용 씬을 만든 뒤 아래 순서로 진행합니다. (자세한 씬 만드는 방법은 개념 실습 테스트 환경 가이드의 씬 만드는 방법 참고.)
이 실습만 할 전용 씬이 없으면 아래 순서로 한 번만 만듭니다. (이미 ConceptTest_Variable 씬이 있으면 File → Open Scene으로 열고 아래 실습만 이어서 하세요.)
- File → New Scene → Basic (Built-in) 또는 Empty → Create
- File → Save As → 저장 위치: Assets/Scenes → 파일 이름: ConceptTest_Variable → Save
- 아래 실습은 모두 이 씬에서 진행합니다. (다른 문서로 왔다 갔다 하지 않습니다.)
수행 과정 (실습 1단계: 로컬 변수만)
- Unity에서 새 C# 스크립트 생성
- Project 창에서 Scripts 폴더 우클릭 → Create → C# Script
- 이름:
VariableTest
- 다음 코드 작성
→score,level,playerName은 전부 Start() 안에 있으므로 로컬 변수입니다. ```csharp using UnityEngine;
public class VariableTest : MonoBehaviour { void Start() { // 변수 선언과 값 저장 int score = 0; int level = 1; string playerName = “플레이어”;
// 변수 값 출력
Debug.Log("점수: " + score);
Debug.Log("레벨: " + level);
Debug.Log("이름: " + playerName);
// 변수 값 변경
score = 100;
level = 2;
Debug.Log("변경 후 점수: " + score);
Debug.Log("변경 후 레벨: " + level);
} } ```
- 빈 GameObject에 스크립트 추가 후 Play
- Hierarchy에서 Create Empty → VariableTest 스크립트 추가
- Play 버튼 클릭
- Console 확인
- “점수: 0”, “레벨: 1”, “이름: 플레이어” 출력
- “변경 후 점수: 100”, “변경 후 레벨: 2” 출력
- → 변수에 값을 저장하고 나중에 바꿀 수 있음을 확인!
-
직접 해보기:
float speed = 1.5f;변수를 추가하고 Debug.Log로 출력해 보세요. - 다음 단계: 변수는 “저장소”입니다. 나중에 그 저장소를 바꾸는 함수를 같은 덩어리(클래스)에 넣는 법은 멤버와 메소드 문서에서 배울 수 있어요.