본문 바로가기

코딩 공부/Unity C#

배열(Array)

Charater Changer 스크립트 참고

- 스크립트에서 게임오브젝트 타입에 요소가 4개인 배열 변수 선언 

인스펙터창

- 배열 요소의 개수를 4개로 설정하기 위해 상단에 수동으로 '4' 라고 기입한다

- 인스턴스화에서 모든 배열에 접근할 수 없으므로 인덱스 숫자를 기입해준다

둘 다 똑같음. 취향에 따라 고르자

- 정 파일이나 에셋(asset)을 실행 중에 동적으로 메모리에 로드할 수 있도록 한다

- Resources.Load는 Unity 프로젝트의 "Resources" 폴더에 저장된 에셋들을 런타임에 불러오는 데 사용한다


배열 객체 생성 및 활용

      static void Main(string[] args)
      {
          // 덱 객체 생성 및 셔플
          Deck deck = new Deck();
          deck.Shuffle();

          // 카드 5장을 담을 배열 생성
          Card[] cards = new Card[5];

          // 카드 한 장을 뽑아 배열의 요소 0에 넣는다
          cards[0] = deck.TakeTopCard();

          // 카드를 뒤집은 다음 프린트하기
          cards[0].FlipOver();
          cards[0].Print();

          // 배열에 다른 카드를 추가하고 두 카드 모두 프린트하기
          cards[1] = deck.TakeTopCard();
          cards[1].FlipOver();
          cards[0].Print();
          cards[1].Print();   
      }

인덱스 번호가 0부터 시작하는 이유?

short는 2byte이다

- 인덱스 3번의 위치는 46824 + (2 * 3) = 46830 이다. 0부터 시작한 곳부터 수를 더함.

- 만약 1부터 인덱스 번호가 시작된다면 추가적으로 뺄셈을 해야하므로 속도가 느려지고 비효율적으로 된다.