이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
서론
프로그래밍 언어의 종류와 무관하게 반복문은 굉장히 많이 쓰이는 것을 알 수 있습니다. 특히 게임에서의 반복문은 굉장히 큰 비중을 차지하고 있습니다. 이번 파트에서는 foreach문, for문, while문을 통해 이전 파트에서 배열을 통해 생성한 코드를 아래와 같은 결과가 나오도록 수정하는 방법에 대해 배워보도록 하겠습니다.
foreach문
foreach문은 이전 파트에서 배웠던 배열과 연관이 있는 구문입니다. C#에서 가장 간단한 반복문이라고 할 수 있습니다. 배열의 첫 번째 인자부터 마지막 인자까지 넘겨서 foreach문 내부에서 어떠한 처리를 진행할 수 있습니다.
foreach (type obj in Array)
{
// 넘겨받은 obj에 대한 처리
}
using UnityEngine;
using System.Collections;
public class Hero : MonoBehaviour {
public GameObject[] enemies;
// Use this for initialization
void Start () {
foreach (GameObject obj in enemies) {
obj.GetComponent().material.color = Color.black;
}
}
// Update is called once per frame
void Update () {
}
}
GameObject 형식의 배열을 넘길 것이므로 GameObject obj in enemies를 적어줍니다. 배열의 0번째 인덱스부터 마지막 인덱스까지 obj에 넣어서 foreach 구문안의 명령문을 반복 실행하게 됩니다.
using UnityEngine;
using System.Collections;
public class Hero : MonoBehaviour {
public GameObject[] enemies;
// Use this for initialization
void Start () {
foreach (GameObject obj in enemies) {
obj.GetComponent
for문
가장 많이 쓰이는 for문은 다음과 같은 형식이며, 반복횟수 세기 위한 변수 ; 탈출조건 ; 탈출조건을 성립하기 위한 연산 순으로 괄호에 넣습니다.
for (int i = 0 ; i <= num ; i++)
{
// i 번째에 대한 처리
}
using UnityEngine; using System.Collections; public class Hero : MonoBehaviour { public GameObject[] enemies; // Use this for initialization void Start () { for(int i = 0; i < enemies.Length; i++) enemies[i].GetComponent().material.color = Color.black; } // Update is called once per frame void Update () { } }
while문
while 문은 조건이 true인 동안 무한 반복하는 구문입니다. 자칫하면 무한루프에 빠질 수 있으므로 조건을 잘 지정해주거나, 내부에서 if와 break를 통해 빠져나갈 수 있도록 구현하는 것이 중요합니다. 물론 하늘의 구름이 계속 움직인다던가, 적이 계속 움직이기 위해 일부러 무한루프를 생성해주는 경우도 있습니다.
while(true){// while 조건이 true일 동안 실행될 명령문}
while(true)
{
// while 조건이 true일 동안 실행될 명령문
}
using UnityEngine; using System.Collections; public class Hero : MonoBehaviour { public GameObject[] enemies; // Use this for initialization void Start () { int count = 0; while (count < enemies.Length) { enemies[count].GetComponent
().material.color = Color.black; count++; } } // Update is called once per frame void Update () { } }
간단한 코드이니 설명은 생략하겠습니다.
반응형
'Frontend > Unity' 카테고리의 다른 글
[유니티 C# 기초 강의] 11. 클래스와 다형성 (4) | 2016.07.26 |
---|---|
[유니티 C# 기초 강의] 10. 클래스와 상속 (2) | 2016.07.25 |
[유니티 C# 기초 강의] 9. 프로퍼티 (8) | 2016.07.25 |
[유니티 C# 기초 강의] 7. 배열 (3) | 2016.07.25 |
[유니티 C# 기초 강의] 6. 조건문 (3) | 2016.07.24 |
[유니티 C# 기초 강의] 5. 열거형 (12) | 2016.07.24 |