본문 바로가기
유니티/유니티 문법?

리스트 (실시간으로 입력 받음)

by xortl98 2021. 4. 18.
728x90

배열은 수를 정해준 값에 한정해서 숫자를 입력받고 해야지만 리스트는 실시간으로 입력받는다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Score : MonoBehaviour
{
    //public int[] score = new int[10];       //배열
    public List<int> score = new List<int>(); //리스트 (실시간으로 방의 개수가 생김)

    // Update is called once per frame
    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            int randomNumber = Random.Range(0, 100);
            score.Add(randomNumber);
                
        }
    }
}

 

큐브를 클릭하면 랜덤으로 숫자값이 생성된다. 배열의 경우 10번 클릭하면 에러가 나지만 리스트는 실시간으로 생기기 때문에 클릭하면 계속 생겨난다. 

 

실시간으로 생기는 Score&nbsp;

 

 

리스트에서 값 추가, 제거하는 방법

 

-리스트에는 트림이라는 특성이 있어서 앞에있는 값이 제거되면 자동적으로 뒤에 값이 앞으로 온다.

(score[1]값이 제거되면 score[2]에 있던 값이 score[1]로 넘어온다. 물론 사라진 score[1]이 가르키던 값이 사라지는건 아니다.)

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Score : MonoBehaviour
{
    //public int[] score = new int[10];       //배열
    public List<int> score = new List<int>(); //리스트 (실시간으로 방의 개수가 생김)

    void Start()
    {
        int score0 = 30;
        int score1 = 45;
        int score2 = 60;

        score.Add(score0);	//리스트안 값 추가
        score.Add(score1);  //리스트안 값 추가
        score.Add(score2);  //리스트안 값 추가

        score.RemoveAt(1); // 1번째 리스트 방 제거 (45 제거)
        score.Remove(60); //리스트안에 60이란 값을 찾아서 제거 
    }

}

 

리스트안에 score1과 score2가 삭제된걸 확인할 수 있다.