Menu
CoddyTech

중첩 반복문

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 38번째.

한 행에는 루프 하나가 필요합니다. 행과 열로 이루어진 전체 바닥에는 루프 안에 루프가 필요합니다.

for (int column = 0; column < 3; column++)
{
    for (int row = 0; row < 2; row++)
    {
        Debug.Log(column + ", " + row);
    }
}

바깥쪽 루프가 한 번 반복될 때마다 안쪽 루프는 끝까지 실행됩니다. 따라서 0, 0과 0, 1을 출력한 다음, 1, 0과 1, 1을 출력하고, 그다음 2, 0과 2, 1을 출력합니다. 열 3개에 행 2개를 곱해 총 6줄입니다.

두 루프에는 서로 다른 이름의 카운터가 필요합니다. 여기서는 세는 대상을 나타내는 column과 row라는 이름을 사용했는데, 이 이름은 i와 j보다 코드를 읽기 쉽게 해 줍니다.

challenge icon

챌린지

중급

타일 12개로 바닥을 만드세요. 열 4개, 행 3개입니다.

  1. Start()에서 PlaceTile(0, 0);을 for (int column = 0; column < 4; column++)로 바꾸세요.
  2. 중괄호 안에 for (int row = 0; row < 3; row++)를 작성하고, 안쪽 반복문 안에서 PlaceTile(column, row);를 호출하세요.

‘플레이’를 누르면 타일 4열 3행으로 된 바닥이 나타납니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;

public class TileFloor : MonoBehaviour
{
    void Start()
    {
        // 타일을 4열 3행으로 배치합니다.
        PlaceTile(0, 0);
    }

    void PlaceTile(int column, int row)
    {
        GameObject tile = GameObject.CreatePrimitive(PrimitiveType.Cube);
        tile.name = "Tile";
        tile.transform.position = new Vector3(column * 1.1f - 1.65f, 0.1f, row * 1.1f);
        tile.transform.localScale = new Vector3(1, 0.2f, 1);
        tile.GetComponent<Renderer>().material.color = new Color(0.85f, 0.85f, 0.9f);
    }
}

Unity 스크립팅 기초의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드