-
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