값을 기억하는 변수
Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 5번째.
Unity는 매 프레임마다 Update()를 호출하며, 호출할 때마다 새로 시작합니다. 메서드 안에서 만든 변수는 메서드가 끝나면 버려집니다. 따라서 이 카운터는 1을 넘지 못합니다.
void Update()
{
int frames = 0;
frames++;
}frames++는 1을 더하는 것으로, frames += 1을 짧게 쓴 것입니다. 하지만 다음 프레임에서는 int frames = 0;이 다시 실행되어 처음부터 다시 시작합니다.
한 프레임에서 다음 프레임까지 값을 기억하려면 클래스 안에, 모든 메서드 바깥에 변수를 만드세요. 이렇게 선언한 변수는 필드입니다. 객체가 존재하는 동안 유지되며, 클래스의 모든 메서드에서 사용할 수 있습니다.
int frames = 0;
void Update()
{
frames++;
}이제 frames는 매 프레임마다 1씩 더해져 1, 2, 3으로 계속 증가합니다.
챌린지
쉬움식물이 계속 자라게 하세요.
Update()안에 있는int frames = 0;줄을 잘라 내세요.- 클래스 안에서
void Update()위에 붙여 넣어frames가 그 값을 기억하는 필드가 되도록 하세요.
‘플레이’를 누르면 식물이 매 프레임 조금씩 더 자랍니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
public class Grower : MonoBehaviour
{
void Update()
{
int frames = 0;
frames++;
transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
}
}
Unity 스크립팅 기초의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드