배열
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); }는 각 값을 순서대로 한 번씩 처리합니다.
챌린지
중급배열과 반복문을 사용해 스카이라인을 타워 7개 길이로 만드세요.
6f와2f를heights의 끝에 추가하세요:{ 2f, 5f, 3f, 1f, 4f, 6f, 2f }.PlaceTower줄을for (int i = 0; i < heights.Length; i++)로 바꾸세요.- 그 안에서
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 플레이그라운드