목록분류 전체보기 (260)
Deff_Dev
어드레서블 빌드할 때, 이런 오류가 나온다면 Addressable Report 창을 Close한 뒤에 다시 빌드하면 된다.
모바일 게임에서 어드레서블을 로컬로 사용하기 위해서는 모든 설정을 전부 기본 설정으로 둬야 한다.⚙️ 설정 Profile Group Addressable Asset Setting 여기서 한 가지 주의할 점은 Addressable Asset Setting에서 Build Remote Catalog를 체크 해제 해야 된다는 점이다. Build Remote Catalog는 로컬이 아닌 서버에서 어드레서블을 로드할 때 체크해야 한다.🔨 빌드 Play Mode Script를 Use Existing Build로 변경한 뒤, Build > New Build > Default Build Script를 눌러 빌드한다. 빌드가 완료된다면 에디터에서 리소스가 잘 로드되는지 테스트한다. (에디터에서는 Material이 ..
어드레서블에서 로드한 Texture2D를 Sprite로 변경해야하는 경우가 생겼다. Texture에서 Sprite로 변경할 때는 Sprite.Create 함수를 사용한다. 코드// 어드레서블 로드Texture2D loadThumbnail = await AddressableManager.Instance.LoadAsset(EAddressableType.Thumbnail, idx++);// 텍스처의 전체 영역 설정Rect rect = new Rect(0, 0, loadThumbnail.width, loadThumbnail.height);// Sprite 생성 (텍스쳐, 영역, 피봇, PixelPerUnit = 100)Sprite sprite = Sprite.Create(loadThumbnail, rect, ..
📌 문제 상황 프로젝트에 맵을 적용시켰더니 Batch가 기본 1000이 넘었고 가장 높은 맵은 1900까지 나왔다. 인스펙터 창에서 Static 배칭을 적용하려 했지만, 런타임에 어드레서블을 사용해 맵을 로드하는 과정에서 Static 배칭이 적용되지 않는 문제가 발생했다 Static 배칭이란 ?정적인 오브젝트 중에 같은 Material을 가진 오브젝트를 미리 배칭하여 드로우 콜을 줄이는 최적화 기법 배칭 과정에서 모든 정적인 오브젝트를 하나로 묶게 되므로, 메모리 사용량이 증가할 수 있습니다. 모든 최적화 방법이 그렇듯 Static 배칭 역시 적절한 상황에서만 사용해야 한다.🔑 CombineMeshes를 이용한 Static Batching 런타임 중 Static 배칭이 자동으로 적용되지 않자,..
1. C# 구조체와 클래스의 차이는 ?구조체는 값 형식의 데이터 구조이고 클래스는 참조 형식의 데이터 구조이다.2. 클래스를 사용할 때, 주의 할 점클래스 객체의 할당을 자주하다 보면 GC에 부하를 줄 수 있기 때문에 꼭 필요한 객체만 생성해야한다.클래스를 이용해 새로운 인스턴스를 만들 때, 깊은 복사를 이용해야 새로운 인스턴스가 생성된다.3. GC 내부 동작힙 메모리에 할당할 수 있는 공간이 없을 때, GC가 자체적으로 실행되는데, 힙 메모리를 탐색하면서 사용하지 않는 객체를 찾고 메모리를 해제하는 방식으로 동작한다.4. GC 제네레이션GC는 0, 1, 2 세대로 나눠서 0, 1 ,2 세대 순으로 메모리를 탐색하고 쓰레기 메모리를 할당 해제한다.GC에서 살아남은 메모리들은 다음 세대로 넘어가는 형식이다..
sharedMaterial은 실제로 인스펙터에 저장된 원본 Material을 말하고 모든 오브젝트가 동일한 Material을 사용할 때 사용된다 Material을 공유하기 때문에 Batching 가능하지만 Material 값을 변경하면 해당 Material을 사용하는 모든 오브젝트에 반영된다. material은 sharedMaterial의 사본을 만들어 사용하는 인스턴스로 다른 값을 가져야할 때 사용한다. 고유한 Material 인스턴스가 생성되므로 Batching 불가능하지만 material 값을 수정해도 해당 오브젝트만 수정된다. 그렇기 때문에 각각 다른 값을 부여해야하는 경우에는 material에 접근해야되고 같은 값을 가질 때는 sharedMaterial로 접근하면된다.
1. 네트워크 프로토콜 (IP, TCP, UDP)에 대해 설명해주세요. 네트워크 프로토콜은 데이터를 주고받는 데이터 통신을 원활하게 하기 위해 미리 정해놓은 통신 규약이다. 더보기 Application 계층사용자와 바로 연결되어 있다.사용자로부터 정보를 입력받아 하위 계층으로 전달 or 하위 계층에서 전송한 데이터를 사용자에게 전달한다.Presentation 계층받은 데이터를 인코딩 or 디코딩하여 데이터의 형식을 정해주는 계층이다.Session 계층네트워크 상 양쪽 연결을 관리하고 연결을 지속시켜주는 계층TCP/IP 세션을 만들고 없애는 역할Transport 계층데이터가 실제로 전송될 때 신뢰성을 보장하기 위한 계층이다.데이터 패킷이 정상적으로 전달되었는지 확인하고, 정상적으로 전달되지 못했다면 재전송..
1. 오일러 각의 한계점에 대해 설명해주세요 오일러 각강체가 놓인 방향을 3차원 공간에 표시하기 위해 레온하르트 오일러가 도입한 세 개의 각도로 3개의 서로 수직인 X,Y,Z 축 각도로 표현하는 일반적이고 직관적인 방법이다.오일러 각도는 회전한 축을 기준으로 삼아 순차적으로 회전한다.오일러 각은 회전을 세 번(X, Y, Z)에 나눠서 순차적으로 계산하기 때문에 종속적이다. 한계점짐벌락세 개의 회전 축 중 두 개가 겹쳐서 하나의 회전 자유도가 상실되는 현상을 말하고, 특정 각도에서 두 개의 축이 동일한 평면에 놓이면서 발생한다.보간 문제3축에 대해 회전이 종속적이므로 2개의 오일러 각도 사이를 보간할 때, 어느 방향으로 돌아갈지 중간 값을 결정할 수 없는 문제가 생긴다.2. 쿼터니언을 사용하는 이유에 대..