ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 24년 5월 22일 TIL
    공부 기록 2024. 5. 22. 13:02

    [System.Serializable] 클래스와 구조체, 열거형을 직렬화 해주는 기능이다.

     

    SO는 참조형으로 new를 통해 새로 객체를 만들어도 SO가 담겨 있는 클래스는 같은 SO를 참조를 해서 의도치 않은 데이터 변경이 일어날 수 있다. Instantiate를 통해서 새로 만들어주고 SO를 바꿔주는 작업을 해줘서 이러한 부분을 보완 해줘야 한다. 

     

     

    Corutine 

    병렬 처리 해주게 보이게끔 할 수 있는 기능이다. 실행에 처리와 처리 사이에 대기시간을 넣을 수 있다. 

     

    코루틴의 yield return은 일반적인 return이 아니라 중단느낌이다. 

    코루틴 중에 중단이 됐을 때 기다렸다가 다시 코루틴이 되는 게 아니라 다음 처리로 넘어가게 된다. 

     

    이걸 활용을 해서 코루틴 2개나 여러 개를 동시에 사용을 하면 병렬 처리처럼 보이게 할 수 있는 것이다. 

     

    아니면 또 다음 처리로 넘어가고 다시 코루틴이 시작 되기 전에 어떠한 것을 해야지 코루틴이 다시 실행이 되게 하는 정지, 재개 느낌으로도 사용 할 수도 있다. 

     

    코루틴을 중지 시키는 방법도 있다.

    StopCoroutine 함수인데 주의 할 점은 코루틴을 실행 할 때 스트링형식이나 함수형식을 사용한 코루틴은 정지가 안 될 수 있다. 그래서 어떠한 코루틴을 정지 시켜야 할 경우가 있는 상황이면 변수로써 코루틴을 만들어 주고 사용해줘야 안전하다.

     

    yield return new WaitForSecons(1.5f); 1.5초 뒤에 다시 실행. 

    이러한 것을 사용 해서 코루틴 중에 대기시간을 넣을 수 있다. 

     

    코루틴의 사용 방법.

    Public IEnumerator 코루틴 이름 

    을 사용해 코루틴을 만들어 준다. 

     

    yield return을 반환하는 형식으로 만들어 줘야 한다. 

     

    Public IEnumerator Cor1()

    {

    yield return null;

    }

     

    Public IEnumerator Cor2()

    {

    yield return null;

    }

     

    void Start()

    {

    StartCorutine(Cor1);

    StartCorutine(Cor2);

    }

     

    StartCorutine 함수를 사용해서 코루틴을 실행 시킬 수 있다. 

     

    StopCoroutine 을 사용해서 코루틴을 계속 반복 시키다가 원할 때 정지를 하게 하게 할 수도 있다. ex) 마우스 클릭 할 때까지 계속 반복. 

    어떠한 방법으로든 사용 할 수 있겠지만 뭐든지 더 나은 방법이 있을 수 있다. 

    '공부 기록' 카테고리의 다른 글

    24년 5월 24일 TIL  (0) 2024.05.24
    24년 5월 23일 TIL  (0) 2024.05.23
    24년 5월 21일 TIL  (0) 2024.05.21
    24년 5월 20일 TIL  (0) 2024.05.20
    24년 5월 16일 TIL  (0) 2024.05.16
Designed by Tistory.