Unity/내용 정리

Unity - 인덱서 / 열거형

olivia-com 2021. 7. 1. 02:43

인덱서

인덱서의 구조

접근_제한자 변환_타입 this[int index]{

   get{ }

   set{ }

}

using UnityEngine;

public class IndexerExample : MonoBehaviour
{
    /*
        * 인덱서의 구조
        접근_제한자 변환_타입 this[int index]{
            get{ }
            set{ }
        }
    */
    void Start(){
        /*
        Grade gradeing = new Grade();
        gradeing.grades[0] = 20;

        for(int i = 0; i< gradeing.grades.Length; i++){
            Debug.Log(gradeing.grades[i]);
        }
        */

        Grade grading = new Grade();
        grading[0] = 20;
        for(int i = 0; i< grading.grades.Length; i++){ // 객체의 길이를 구할 순 없음  즉, grading.grades.Length 대신 grading.Length 대체 불가능
            Debug.Log(grading[i]);
        }

        /*
            Grade gr = new Grade();
            int[] grades = gr.grades;

            grades[0] = 20;

            for(int i = 0; i < grades.Length; i++){
                Debug.Log(grades[i]);
            }
        */
    }
}
class Grade{
    public int[] grades = {10, 50, 90, 70, 30};

    public int this[int index]{
        get{
            return grades[index];
        }
        set{
            grades[index] = value;
        }
    }
}

열거형

열거형

: 숫자에 이름을 붙인 것

 

* 열거형의 구조

enum 열거형_이름{

   요소1, 요소2, 요소3 ...

}

using UnityEngine;

public class EnumExample : MonoBehaviour
{
    /*
        열거형: 숫자에 이름을 붙인 것
        * 열거형의 구조
        enum 열거형_이름{
            요소1. 요소2, 요소3 ...
        }
    */

    string[] names = {"john", "chulsoo", "bbobbi", "olivia"};

    void Start()
    {
        Debug.Log((int)Days.Mon); // 0
        Debug.Log((int)Days.Sat); // 5


        Debug.Log(name[2]); // bbobbi
        Debug.Log(names[(int)Names.bbobbi]); // 2
    }
}

enum Days{
    Mon, Tue, Wed, Thurs, Fri, Sat, Sun // 각각 0,1,2 ... 로 지정
    /*
        Mon, Tue, Wed, Thurs = 7, Fri, Sat, Sun 라고 하면 각각
        0 1 2 7 8 9 10 으로 지정됨
    */
}

enum Names{
    john, chulsoo, bbobbi, olivia
}