코어는 물리적인 개념이고 스레드는 소프트웨어 적인 개념.
코어는 일꾼이고이고 스레드는 일을 하는 행위이다 .
싱글 코어, 싱글 스레드 CPU: 한 명의 작업자가 하나의 일을 순서대로 처리하는 것. 싱글 코어, 멀티 스레드 CPU: 한 명의 작업자가 여러 일을 번갈아 가면서 처리하는 것 멀티 코어, 멀티 스레드 CPU: 여러 명의 작업자가 여러 일을 동시에 처리하는 것.
코루틴 : 작은 양의 데이터를 단발성으로 기다릴때
어싱크 : 방대한 양의 데이터를 기다릴때 예를들면 네트워크 등등
이 둘은 성능 최적화를 위해 쓴다.
코루틴은 싱글스레드 기반으로 멀티스레드 처럼 보이게 하지만 어싱크는 멀티스레드를 쓴다.
코루틴은 유니티에서 공식적으로 제공하지만 어싱크는 c#에서 제공하고 유니티 공인은 아니다 .
코루틴(Coroutine)
코루틴은 Unity에서 사용되는 비동기 프로그래밍 방식입니다. 이는 특정 작업을 나중에 다시 실행할 수 있게 하여 게임 루프와 상호작용할 수 있도록 합니다. 코루틴은 IEnumerator를 사용하여 작성되며 StartCoroutine 메서드를 통해 호출됩니다.
장점
- 쓰기 쉽다
- 타이머보다 직관적이다
- 비동기 작업을 단순화 할 수 있다.
사용 상황
- 일정 시간 동안 대기해야 하는 작업 (예: 효과 적용, 애니메이션 대기 등).
- 매 프레임마다 작은 작업을 수행해야 하는 경우.
어싱크(Async)
어싱크와 **어웨이트(Await)**는 C#의 비동기 프로그래밍 기능입니다. 이는 주로 I/O 바운드 작업(예: 파일 읽기/쓰기, 웹 요청 등)에 사용됩니다. Async 메서드는 async 키워드로 표시되며, 비동기 작업을 수행하는 동안 다른 작업을 계속할 수 있도록 합니다.
장점
- I/O작업을 비동기적으로 처리해 주 스레드가 블록되지 않는다. 즉 데이터 송수신에 유리하고 주 스레드가 이 작업때문에 멈춰있지 않는다.
- 비동기 코드가 동기코드처럼 보여 가독성이 개선된다
- 다양한 비동기 작업 처리 가능하다.
코루틴을 이용하여 비동기 작업을 하는데 작동 방식은 await 등을 사용하여 동시에 작동시킨다. 이때 주로 로딩창으로 가려두고 로딩을 하는 식으로 많이 쓴다. 로드 해야할 종류가 많은데 한번에 보여줘야 할때 코루틴이나 어싱크를 많이 쓴다.
혹은 오픈월드에서 맵을 랜더링 람과 동시에 특정 경계선에 닿으면 맵을 미리 로드해와 꺼둿다가 가까이 갔을때 렌더링 한다던지 하는듯.
어싱크는 진짜 비동기이지만 코루틴을 더 선호하신다고 한다.
비동기는 활용도가 많을거 같음
어드레서블은 패치 작업이 많은 곳에서 씀. 보안때문에 쓴다고 알고있는데 pc에서도 쓰긴하나 주로 모바일에서 많이 쓴다.
인풋매니저의 호리즌탈 버티칼로 좌우앞뒤 키를 if문에서 바꿔줄 수 있음.
애니매이터를 만들고 모션들을 저장해 블랜더트리에 담아 속도값에 따라 다른 모션을 도출할 수 있다. 그리고 오디오소스 매니저에 원하는 소리를 넣고 f6로 이벤트를 만들고 그 이벤트에 함수를 할당할 수 있다.
'TECHIT 멋쟁이사자 강의 정리(유니티)' 카테고리의 다른 글
[멋쟁이사자처럼 유니티 게임 스쿨 TIL]7일차 (1) | 2024.06.07 |
---|---|
[멋쟁이사자처럼 유니티 게임 스쿨 TIL] 5일차 foreach ,group by, linq, list , array 등등 (0) | 2024.06.04 |
[멋쟁이사자처럼 유니티 게임 스쿨 TIL] 4일차 오브젝트 회전 키 입력 (0) | 2024.06.03 |
A*(에이스타) 알고리즘 기본개념(1) (0) | 2024.06.01 |
[멋쟁이사자처럼 유니티 게임 스쿨 TIL] 3일차 (0) | 2024.06.01 |