목록Unity(유니티) (72)
Deff_Dev
[관련 블로그 글] [Unity/C#] TextMeshPro Material유니티에서 Text UI를 개발할 때, TextMeshPro를 많이 사용한다. 이때, 텍스트의 OutLine,Underlay 등을 설정하고 싶을 때, Material에서 OutLine 등을 설정하게 된다면 모든 해당 폰트를 사용하는 모든 Text가deff-dev.tistory.com Material Preset 변경TextMeshPro의 Material Preset을 스크립트로 변경해야할 때, 어떻게 해야할까 ? Text 객체.material로 변경한다면 material은 변경되지 않는다. 이럴 땐 Text 객체.fontMaterial로 변경하면 된다.public class MaterialChanger : MonoBehaviour..
미션 창에 사용되는 유닛 썸네일이 배칭이 안되는 것을 확인했다.( 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 배칭이 자동으로 적용되지 않자,..
sharedMaterial은 실제로 인스펙터에 저장된 원본 Material을 말하고 모든 오브젝트가 동일한 Material을 사용할 때 사용된다 Material을 공유하기 때문에 Batching 가능하지만 Material 값을 변경하면 해당 Material을 사용하는 모든 오브젝트에 반영된다. material은 sharedMaterial의 사본을 만들어 사용하는 인스턴스로 다른 값을 가져야할 때 사용한다. 고유한 Material 인스턴스가 생성되므로 Batching 불가능하지만 material 값을 수정해도 해당 오브젝트만 수정된다. 그렇기 때문에 각각 다른 값을 부여해야하는 경우에는 material에 접근해야되고 같은 값을 가질 때는 sharedMaterial로 접근하면된다.