if와 else
Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 6번째.
bool은 두 가지 값 중 하나를 저장합니다. true 또는 false입니다. 문이 열려 있나요? 플레이어가 땅에 있나요? 게임이 끝났나요?
bool gameOver = false;if는 조건이 참일 때만 해당 줄을 실행하고, else는 조건이 참이 아닐 때 해당 줄을 실행합니다. 중괄호 { }는 각 부분에 속하는 줄을 감쌉니다.
if (gameOver)
{
transform.position = new Vector3(0, -2, 0);
}
else
{
transform.position = new Vector3(0, 2, 0);
}이 코드는 게임이 끝나면 오브젝트를 시야 밖으로 가라앉히고, 게임이 진행되는 동안에는 오브젝트를 위쪽에 유지합니다. 이와 같은 코드는 Update() 같은 메서드 안에 작성하며, 클래스의 마지막 } 뒤에는 작성하지 않습니다.
Unity도 bool 값으로 질문에 답합니다. 플레이어가 스페이스바를 누르고 있는 동안 Input.GetKey(KeyCode.Space)는 true이고, 그 외에는 false이므로 Update()에서 매 프레임 이를 확인할 수 있습니다.
챌린지
쉬움Space 키를 누르고 있으면 문이 올라가야 합니다.
Update()의 주석 두 개 아래에 중괄호 안에transform.position = new Vector3(0, 3, 0);가 있는if (open)을 작성하세요.- 그 뒤에 중괄호 안에
transform.position = new Vector3(0, 1, 0);가 있는else를 작성하세요.
‘플레이’를 누르고 게임을 클릭한 다음 Space 키를 누르고 있으세요. 문이 올라가고, 손을 떼면 내려옵니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
public class Gate : MonoBehaviour
{
void Update()
{
bool open = Input.GetKey(KeyCode.Space);
// open이 true이면 게이트를 (0, 3, 0)으로 이동합니다.
// 그렇지 않으면 게이트를 (0, 1, 0)으로 이동합니다.
}
}
Unity 스크립팅 기초의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드