함수/메서드 (Function/Method)
📖 개념 설명
함수는 특정 작업을 수행하는 코드 묶음입니다.
// 함수 정의
void SayHello()
{
Debug.Log("안녕하세요!");
}
// 함수 호출 (사용)
SayHello(); // "안녕하세요!"가 출력됨
함수의 구성 요소:
- 이름: 함수를 부르는 이름 (예:
SayHello) - 매개변수: 함수에 전달하는 데이터 (예:
int number) - 반환값: 함수가 돌려주는 결과 (예:
return 10;)
테트리스 예시:
// 블록을 왼쪽으로 이동시키는 함수
public void MoveLeft()
{
position.x--; // x 좌표를 1 감소
}
💡 클래스와 연결:
함수가 클래스 안에 들어가면 메소드라고 부릅니다.
그리고 그 메소드는 보통 그 클래스 안의 변수(저장소) 를 읽거나 바꾸는 역할을 합니다.
예: MoveLeft()는 position이라는 저장소를 바꿉니다.
→ “저장소를 다루는 함수”가 뭔지, 왜 클래스에 넣는지는 멤버와 메소드 문서를 참고하세요.
🛠️ 실습: 함수 만들고 호출하기
목표: 함수를 정의하고 호출하여 실행 순서를 확인합니다.
이 실습 전용 씬 만들기 (환경 설정)
먼저 이 실습 전용 씬을 만든 뒤 아래 순서로 진행합니다. (자세한 씬 만드는 방법은 개념 실습 테스트 환경 가이드의 씬 만드는 방법 참고.)
이 실습만 할 전용 씬이 없으면 아래 순서로 한 번만 만듭니다. (이미 ConceptTest_Function 씬이 있으면 File → Open Scene으로 열고 아래 실습만 이어서 하세요.)
- File → New Scene → Basic (Built-in) 또는 Empty → Create
- File → Save As → 저장 위치: Assets/Scenes → 파일 이름: ConceptTest_Function → Save
- 아래 실습은 모두 이 씬에서 진행합니다. (다른 문서로 왔다 갔다 하지 않습니다.)
수행 과정
- Unity에서 새 C# 스크립트 생성
- 이름:
FunctionTest
- 이름:
- 다음 코드 작성 ```csharp using UnityEngine;
public class FunctionTest : MonoBehaviour { void Start() { Debug.Log(“Start에서 함수 호출”); SayHello(); // 함수 호출 AddNumbers(3, 5); // 매개변수 전달 int result = GetTen(); // 반환값 받기 Debug.Log(“GetTen()이 돌려준 값: “ + result); }
// 매개변수 없음
void SayHello()
{
Debug.Log("안녕하세요! (SayHello 함수 실행됨)");
}
// 매개변수 있음
void AddNumbers(int a, int b)
{
int sum = a + b;
Debug.Log(a + " + " + b + " = " + sum);
}
// 반환값 있음
int GetTen()
{
return 10;
} } ```
- 빈 GameObject에 스크립트 추가 후 Play
- Console에서 “안녕하세요!”, “3 + 5 = 8”, “GetTen()이 돌려준 값: 10” 확인
- 직접 해보기:
MultiplyNumbers(int a, int b)함수를 만들어 곱셈 결과를 출력해 보세요.