타워 쌓기
Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 67개 중 67번째.
크레인이 받침대 위에서 앞뒤로 움직입니다. 스페이스바를 누르거나 클릭할 때마다 크레인에서 블록이 곧장 아래로 떨어집니다. 블록이 쌓인 블록 위에 내려오면 그 자리에 남고, 다음 블록은 그 위에 놓여야 합니다. 빗나간 블록은 떨어져 나갑니다. 블록 더미의 높이가 점수입니다.
게임 전체를 크레인에 있는 하나의 스크립트 Crane로 작성하세요.
챌린지
어려움Crane에 Crane 스크립트를 작성하세요. Inspector에서 blockPrefab(Block 프리팹), top(Base, 지금까지 쌓은 블록의 맨 위), craneSpeed(3), craneEdge(4), fallSpeed(7)을 설정하세요.
- 크레인은 초당
craneSpeed단위의 속도로 x축을 따라 움직입니다.craneEdge를 지나면 왼쪽으로 방향을 바꾸고,-craneEdge를 지나면 오른쪽으로 방향을 바꿉니다. - Space 키를 누르거나 왼쪽 클릭을 하면 크레인의 x 위치에서 크레인보다 1단위 아래로 Block을 떨어뜨립니다. 블록이 떨어지는 동안에는 키를 더 눌러도 아무 일도 일어나지 않습니다.
- 떨어지는 블록은 초당
fallSpeed단위의 속도로 아래로 이동합니다. - 블록의 y가
top의 y + 1까지 내려오고, x가top의 x에서 1 미만의 거리에 있으면 블록이 착지합니다. 블록의 y를 정확히top의 y + 1로 설정하고, 블록을 새로운top으로 지정한 다음, 쌓인 높이를Stack: 1,Stack: 2등으로 로그에 출력합니다. - 착지하지 않은 블록은 계속 떨어집니다. y = -3 아래로 내려가면 블록을 제거하고
Missed!를 로그에 출력합니다.
Play를 눌러 탑을 쌓은 다음 Check를 누르세요.
직접 해보기
using UnityEngine;
public class Crane : MonoBehaviour
{
[SerializeField] private GameObject blockPrefab;
[SerializeField] private Transform top;
[SerializeField] private float craneSpeed = 3f;
[SerializeField] private float craneEdge = 4f;
[SerializeField] private float fallSpeed = 7f;
void Update()
{
}
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.