목록분류 전체보기 (255)
Deff_Dev
문제https://www.acmicpc.net/problem/7576풀이BFS를 통해 익은 토마토(1) 주변 덜 익은 토마토(0)를 탐색하고 익은 토마토(1)로 바꿔준다. BFS가 끝난 후, 전체 맵을 탐색하고 덜 익은 토마토(0)가 있다면 -1 출력하고,덜 익은 토마토(0)가 없다면 맵에서 가장 큰 값을 출력한다. #include #include #include // https://www.acmicpc.net/problem/7576using namespace std;int m, n;int dx[4] = { 1,-1,0,0 };int dy[4] = { 0,0,1,-1 };vector> map;queue > q;void BFS(){ while (!q.empty()) { pair front = q.fron..
미션 창에 사용되는 유닛 썸네일이 배칭이 안되는 것을 확인했다.( Batch가 40 정도 확 오른다.) Sprite를 배칭하기 위해서 Sprite Atlas를 사용했다. [트러블 슈팅] [Unity/C#] Sprite Atlas Packing 시 Rotation 될 때Atlas를 만들고 Packing을 했는데 Sprite가 회전되어 있는 경우가 있었다. 아틀라스의 Allow Rotation, Tight Packing이 기본적으로 체크되어 있을 텐데, 이 옵션들을 체크해제 하면 된다. Allow Rotation : Sprdeff-dev.tistory.com Sprite Atlas를 어드레서블 그룹에 추가했다. private async Task LoadThumbnail() { int ..
Atlas를 만들고 Packing을 했는데 Sprite가 회전되어 있는 경우가 있었다. 아틀라스의 Allow Rotation, Tight Packing이 기본적으로 체크되어 있을 텐데, 이 옵션들을 체크해제 하면 된다. Allow Rotation : Sprite의 회전을 허용한다.Tight Packing : Sprite들을 빈자리를 최소화하여 Atlas에 그린다. 잘 들어가는 것을 볼 수 있다.
어드레서블 빌드할 때, 이런 오류가 나온다면 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에서 살아남은 메모리들은 다음 세대로 넘어가는 형식이다..