ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니티 반복문 foreach 정리 / 배열 / Loop 루프문
    유니티(Unity)/유니티 코딩 2019. 2. 11. 17:04

    해당 티스토리 페이지는 필자가 유니티 C# 개발을 하면서 학습한 내용들을 기록하고 공유하는 페이지입니다 !

    - 틀린 부분이 있거나, 수정된 부분이 있다면 댓글로 알려주세요 !

    - 해당 내용을 공유 or 퍼가도 좋으나, 출처를 꼭 명시해주세요 !

    - 해당 글의 모든 저작권은 Chameleon Studio에 있습니다.

    - 방문해주셔서 감사합니다 ^^



    썸네일 이미지입니다.유니티 반복문 foreach 정리


    안녕하세요! 카멜레온입니다 ㅎㅎ


    오늘은 유니티 반복문 중 하나인 foreach문을 알아보려고합니다.


    foreach문은 변수를 배열에 담아서 배열에 담긴 변수들을 반복시켜주는 반복문입니다.


    다른 반복문중 하나인 for문의 정리는 여기에,


    while문의 정리는 여기에서 볼 수 있으니 더 알고 싶으신 분은 눌러주세요.


    자, 바로 foreach문을 예제를 들어서 설명해보겠습니다.



    아래 코드를 캡처한 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 누르고 코드를 확인해주세요.




    위의 코드가 바로 foreach 문의 기본 구조입니다.


    배열 상자를 선언한 후에, foreach문 안에서 배열에 담긴 내용들이 순서대로 나오는 것이죠.


    예제로 만든 코드를 설명하자면,


    int형을 가지는 Number 배열 변수를 생성하고, 배열 안에 6개의 배열 상자를 만들었습니다.


    Start문에서 각 배열 상자가 가지는 수를 0부터 4까지 입력해줬습니다.


    지금와서 보니 [5]배열 상자는 사용하지 않았군요.. ㅎㅎ


    그리고 foreach문을 돌려서,


    foreach문의 number는 Number가 가진 배열 상자 수만큼 반복해서 돌게됩니다.


    foreach문은 결국 배열 상자가 가진 내용만큼 처음부터 끝까지 훑어주는 것이죠.


    유니티 콘솔에 로그가 잘 찍히나 확인해볼까요?





    자 유니티로 돌아와서 시작을해보니,


    콘솔에서 로그가 잘 찍히고 있는 것을 확인했습니다.


    foreach문이 배열 상자의 수까지 훑어줬습니다.


    만약, 100번 반복하고 싶다면, 배열 상자를 99개 만들어주면 되겠죠?


    배열은 0부터 인식하니까요.


    자 이번에는 int형 배열이 아닌 String형 배열로 foreach문을 돌려봅시다.



    아래 코드를 캡처한 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 누르고 코드를 확인해주세요.




    String형으로 코드를 짜보았습니다.


    Stirng형은 문자형으로, 문자를 표현할 수 있습니다.


    제일 윗 줄에 ItemName이라는 스트링 배열을 만들고, 6개의 스트링 배열 상자를 만들었습니다.


    new는 새롭다라는 뜻으로 이해하기보다는 만든다라는 뜻으로 이해하시면 좋겠습니다.


    그리고 Start문에 배열상자 안에 5개의 ItemName을 String값으로 입력해줬습니다.

    (이번에도 6개의 스트링 배열 상자를 만들었는데 ItemName[5]는 사용하지 않았네요 ㅎㅎ..)


    그 후, foreach문을 돌려서 foreach문의 string Item은 선언한 string 배열 ItemName에서 가져오게했습니다.


    이렇게 하면, foreach문이 ItemName의 0번 상자부터 끝상자까지 쭉 훑어서 로그를 찍어주겠죠?


    유니티로 돌아가서 로그가 잘 찍히는 지 확인해봅시다.





    foreach문이 쭉 훑으면서 로그를 찍어줬습니다.


    5개밖에 안되니 하나하나 찍어도 상관없겠지만,


    만약 100개 1000개가 된다고하면,


    하나하나 찍어주기 정말 귀찮겠죠?


    편리하게 컨트롤 C, V를 자동지원해주는 foreach문이 있으니,


    foreach문을 적시적소에 사용하면 되겠습니다.


    다음은 foreach문을 응용해서 이중 foreach문을 만들어봅시다.



    아래 코드를 캡처한 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 누르고 코드를 확인해주세요.




    위의 코드는 첫 번째 예제와 두 번째 예제를 합친 예제입니다.


    첫 번째 foreach문에서는 ItemName을 담은 foreach문을 돌리고


    첫 번째 foreach문 안에 또 foreach문을 만들어서 Number를 담은 foreach문을 돌려봅시다.


    번호와 아이템 이름이 적혀서 로그가 찍히겠죠?


    어떤 식으로 찍히는지 유니티로 돌아와서 확인해봅시다.






    번호 순서대로 아이템의 이름이 적혀나오고 있습니다.


    만약, 반대로 번호와 아이템 이름의 foreach문 순서를 바꾼다고 하면,


    0, 0총, 0도끼, 0창, 0대포, 0칼 순으로


    번호가 고정되어 있고, 아이템 이름이 바뀌겠지요 ㅎㅎ


    이렇듯 이중 foreach문은 먼저 들어온 foreach문이 돌고


    그 안에 들어간 두 번째 foreach문이 도는 순서로


    반복하는 것을 알게되었습니다 ㅎㅎ



    <젤랑점핑> 모바일 앱 게임의 상점 이미지<젤랑점핑> 모바일 앱 게임의 상점


    위의 사진은 Chameleon Studio가 만든 <젤랑점핑> 모바일 앱 게임에서


    상점의 모습을 가져온 사진입니다.


    가로 화면에 캐릭터 아이템 3개가 들어가는 것을


    한 사진에 다 넣으려고 늘렸더니 이미지가 다 깨졌네요 ㅎㅎ


    어찌됐든 이 사진을 가져 온 이유는,


    이 캐릭터 아이템들이 이중 foreach문을 사용하여 만들어진 아이템들이기 때문입니다.


    저 많은 캐릭터들을 하나하나 캔버스에 만들고 있자니 귀찮아서


    foreach문 코드로 입력해둔 것이죠.


    여러분들도 foreach문을 이것 저것 만져보고 사용해보면서


    foreach문과 친숙해지면 여러 방면으로 응용할 수 있을겁니다.


    나중에 foreach문으로 <젤랑점핑> 상점 구현도 포스팅으로 다뤄보겠습니다 ㅎㅎ


    [유니티 UI] 카테고리 또는 [유니티 코딩] 카테고리로 들어갈 것 같네요.


    이상 유니티 반복문 foreach 정리를 마치며,


    궁금한 사항은 댓글을 달아주세요.


    또, 카멜레온이 다뤘으면 좋겠다하는 포스팅 내용을 달아주시면, 해당 내용에 관한 포스팅도 해보도록 하겠습니다.


    감사합니다 !


    Chameleon Studio가 만든 게임하러가기


    <젤랑점핑>

    안드로이드- market://details?id=com.Cameleon.TangTangBall

    IOS- itms-apps://itunes.apple.com/app/id1429522379



    <크러쉬팡>

    안드로이드- market://details?id=com.Chameleon.CrushPang 

    IOS- itms-apps://itunes.apple.com/app/id1450109331


    댓글

Designed by Tistory.