UNITY(13)
-
[Unity] 유니티는 왜 싱글 쓰레딩을 권장하는가?
동기 비동기 관련된 개념만 보면 비동기식 멀티 쓰레딩이 가장 좋아보인다. 하지만 유니티는 우리가 알다시피 싱글 쓰레딩을 권장한다. 왜 그러는지 의문점이 생겨 작성한 글이다.비동기식 멀티 쓰레딩 개념에 대해 정리 해놓은 부분을 다시 읽어보면 다음고 같이 적혀있다.나는 사장이고 베이컨을 굽는 직원이 있고 토스트를 굽는 직원이 있고 서빙을 담당하는 직원이 있다고 보면 된다.베이컨 주문이 10개 들어오면 팬에 베이컨을 올리고 타이머를 누르는 작업을 10번 수행하고 10개의 타이머가 순차적으로 울릴면 차례로 뒤집는 작업을 한다. 토스트를 굽는 직원도 동일한 메커니즘이다.이는 이상적인 식당의 모습이다. 그러나 실제 식당의 모습은 위처럼 흘러가지만은 않는다. 이를테면 다음과 같은 문제들이 발생할 수 있다. 1. 작..
2024.11.28 -
[unity] 코루틴이 비동기적인 것처럼 보이는 이유
유니티에서 코루틴(Coroutine)을 열거자(Enumerator)로 선언하는 이유는, 코루틴이 유니티의 게임 루프와 비동기적으로 작동하기 때문입니다. 정확하게는 비동기적인 것처럼 실행되는 것이다. 실제로는 유니티의 메인 스레드에서 순차적으로 실행되며, 진정한 비동기적 작업(즉, 멀티쓰레드에서 동시에 실행되는 작업)은 아니다.비동기적 "처럼" 보이는 이유유니티의 코루틴은 메인 스레드에서 동작하면서도, yield return 을 통해 특정 지점에서 일시 정지하고 특정 조건이 충적되면 다시 재개한다. 이 일시 정지 상태동안, 다른 작업들이 스레드에서 계속 실행될 수 있기 때문에, 마치 비동기적인 작업처럼 느껴지는 것이다. yield 키워드IEnumerator 코드를 특정 지점에서 멈추게 할 수 있는 이유는 ..
2024.10.20 -
[Unity] Unity의 enabled, isActiveAndEnabled 및 activeInHierarchy의 차이점
https://stackoverflow.com/questions/40708014/difference-between-enabled-isactiveandenabled-and-activeinhierarchy-in-unity
2023.05.11 -
[Unity] 현재 실행중인 애니메이터의 길이를 구하는 방법 GetCurrentAnimatorStateInfo
현재 실행 중인 애니메이터의 길이를 얻으려면 Animator 컴포넌트의 GetCurrentAnimatorStateInfo 메서드를 사용하여 현재 상태 정보를 가져와야 합니다. 이 메서드는 현재 애니메이터 상태에 대한 정보를 반환합니다. 다음은 C# 코드의 예입니다. Animator animator = GetComponent(); AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0); float length = stateInfo.length; 이 코드에서 animator 변수는 현재 게임 오브젝트에서 Animator 컴포넌트를 가져오기 위해 사용되고, GetCurrentAnimatorStateInfo 메서드는 현재 애니메이터 상태에 대..
2023.02.22 -
[Unity] 드로우 콜, Draw Call
드로우 콜 드로우 콜이란? CPU가 GPU에게 이거 그려! 하고 명령을 호출하는 것. 한 프레임의 렌더링은 매 오브젝트를 순차적으로 그려주면서 오브젝트를 다 그리면 화면에 보여지게 되는 것이다. 오브젝트를 화면에 렌더링하기 전에 우선 해당 오브젝트가 렌더링 대상에 포함되는지 체크한다. 예를 들어, 현재 프레임 상에서 해당 오브젝트가 카메라의 시야밖에 있다면, 안 그래도 되는 것이므로 렌더링 대상에서 제외한다. 이런 검사를 Culing이라고 한다. 컬링을 거친 오브젝트가 렌더링되려면 CPU로부터 GPU에게 정보를 전달해야한다. 이렇게 한 프레임 마다 오브젝트를 하나하나 그릴 때 마다 정보들이 CPU에서 GPU로 전달되고 그려진다. 이 과정을 반복해서 렌더링한 후 모든 오브젝트들이 다 그려지면 한 프레임이 ..
2022.08.24 -
[Unity]유니티에 csv, 엑셀, txt 파일 불러오기
엑셀파일 > csv > txt 파일순으로 변환을 해줘야한다. 1. 이렇게 엑셀파일을 csv 파일로 변환한다. 2. csv에서 연결프로그램에 메모장으로 연다. 3. 열린 메모장으 다른이름저장으로 저장하고 유니코드를 UTF-8로 저장한다. 4. 유니티 프로젝트 창에서 Resources 파일을 만든다. 5. 코드 작성 TextAsset sr = Resources.Load("TalkFileTxt") as TextAsset; StringReader reader = new StringReader(sr.text); bool endOfFile = false; while (!endOfFile) { string data_String = reader.ReadLine(); if (data_String == null) { en..
2021.06.24