Menu
CoddyTech

배열

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

배열에는 한 가지 형식의 값이 여러 개 순서대로 들어 있습니다. 배열의 형식 뒤에는 대괄호가 오고, 값은 중괄호 안에 들어갑니다:

int[] scores = { 10, 25, 7 };

각 값에는 순서에서의 위치인 인덱스가 있으며, 0부터 셉니다. scores[0]은 10이고, scores[1]은 25이며, scores[2]는 7입니다. scores.Length는 값의 개수를 나타내며, 여기서는 3입니다. scores[3]을 요청하면 네 번째 값이 없으므로 스크립트가 IndexOutOfRangeException으로 중단됩니다.

for 루프에서 Length까지 반복하면 배열에 무엇이 들어 있든 모든 값을 확인합니다:

for (int i = 0; i < scores.Length; i++)
{
    Debug.Log("Score " + i + ": " + scores[i]);
}

인덱스가 필요하지 않을 때는 foreach가 더 짧습니다. foreach (int s in scores) { Debug.Log(s); }는 각 값을 순서대로 한 번씩 처리합니다.

challenge icon

챌린지

중급

배열과 반복문을 사용해 스카이라인을 타워 7개 길이로 만드세요.

  1. 6f와 2f를 heights의 끝에 추가하세요: { 2f, 5f, 3f, 1f, 4f, 6f, 2f }.
  2. PlaceTower 줄을 for (int i = 0; i < heights.Length; i++)로 바꾸세요.
  3. 그 안에서 PlaceTower(i * 1.5f - 4.5f, heights[i]);를 호출하세요.

‘플레이’를 누르세요. 높이가 서로 다른 타워 7개가 한 줄로 서 있습니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;

public class Skyline : MonoBehaviour
{
    void Start()
    {
        float[] heights = { 2f, 5f, 3f, 1f, 4f };

        // 각 높이마다 탑을 하나씩 배치합니다.
        PlaceTower(-4.5f, heights[0]);
    }

    void PlaceTower(float x, float height)
    {
        GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
        tower.name = "Tower";
        tower.transform.position = new Vector3(x, height / 2, 0);
        tower.transform.localScale = new Vector3(1, height, 1);
        tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
    }
}

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

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