728x90

유니티 153

[Unity] Canvas Hierarchy 순서 가장 위/아래로 이동시키기

GameObject를 생성하면 Herarchy에 들어가고, Canvas 의 Child로 추가된 GameObject 들은 제일 하위에 있는 Object 의 Image 가 가장 위에 보이게 됩니다. 그래서 Canvas 에 추가된 Object 순서를 바꾸고 싶다면 Sibling 순서를 바꿔줘야 하는데, 가장 위/아래로 이동시키려면 아래 API를 사용하면 됩니다. ​ transform.SetAsFirstSibling(); transform.SetAsLastSibling(); ​ SetAsFirstSibling() 은 가장 아래에 그려지게 SetAsLastSibling() 은 가장 위에 그려지게. ​ https://docs.unity3d.com/ScriptReference/Transform.SetAsLastSib..

[Unity] API Level 29 빌드 에러, SDK 업데이트 방법

구글플레이 정책이 업데이트 되면서 Android 10(API 레벨 29)이상만 업로드 가능하게 되었습니다. 유니티 엔진에서도 새로운 APK를 빌드할 때 API Level 29 로 설정해줘야 합니다. 과거엔 Android SDK Manager 를 통해 API Level 에 맞는 모듈을 업데이트 받을 수 있는데, Unity Hub 가 SDK Manager 역할을 일부 대체하면서 자동으로 API Level 업데이트도 해주고 있었죠. ​ 그런데... API Level 29 업데이트를 하려고 보니 에러를 뱉으면서 동작하지 않습니다. Build failure Unable to install additional SDK platform. 블라블라... ​ 갑자기 이러니 당황스러웠는데, 해결법은 간단합니다. Unity ..

[Unity] 잦은 자동빌드, 느리고 멈출 때 해결법

유니티를 사용할 때, 코드 한두줄 바꾸고 유니티 에디터를 잠깐 조작할 일이 종종 생깁니다. 어셋을 확인한다거나 컴포넌트 셋팅을 확인한다거나... 그 때마다 수정된 코드를 변경된 어셋으로 감지해서 자동으로 Refresh 가 되면서 컴파일러도 돌아가는데... 그 때마다 에디터가 프리징됩니다. ​ 에디터 전환을 자주 하다보니 잦은 프리징이 좀 짜증나고 시간 허비도 많아서 셋팅을 변경했습니다. ​ Edit > Preferences 로 가서 Auto Refresh 를 꺼줍니다. 이제 코드를 바꾸든 리소스를 변경하든, 유니티는 자동으로 뭔가 해주지 않습니다. 대신, 수종으로 Ctrl + R을 눌러주면 됩니다. 프로그래머 분들은 컴파일 할 때마다 F7 누르듯, 인터넷 브라우저 F5로 새로고침 하듯, 유니티에선 Ctr..

유니티..바이블 - 19장 마스터 데이터 퀘스트 (2화 끝)

. . 1화에서 이어집니다. 1화 : https://wonsorang.tistory.com/544 유니티..바이블 - 19장 마스터 데이터 퀘스트 (1화) . . 19장: 마스터 데이터 퀘스트 Excel Importer, 마스터 데이터의 구축과 활용, 레벨 디자인, ScriptableObject ​ - Excel Importer 플러그인을 이용한 엑셀 파일의 이용 방법 - 엑셀 파일을 이용하는 마스터.. wonsorang.tistory.com MasterDataRepository 클래스를 만들어 퍼사드로 사용. ​ [Pseudo Code] [CreateAssetMenu] //어셋 Create 메뉴에 MasterDataRepository 노출. public class MasterDataRepository ..

유니티..바이블 - 19장 마스터 데이터 퀘스트 (1화)

. . 19장: 마스터 데이터 퀘스트 Excel Importer, 마스터 데이터의 구축과 활용, 레벨 디자인, ScriptableObject ​ - Excel Importer 플러그인을 이용한 엑셀 파일의 이용 방법 - 엑셀 파일을 이용하는 마스터 데이터 구축의 예 - 유니티에서 마스터 데이터를 이용하는 구체적인 구현 방법 ​ 플러그인 주소 https://github.com/mikito/unity-excel-importer/releases ​ Unity 2019.1.4f1 버전으로 진행. 프로젝트를 열면 마이그레이션이 완료되고 아래와 같은 에러가 뜸. Feature `out variable declaration' cannot be used because it is not part of the C# 4.0..

책떼기 완 "유니티 그래픽스 최적화 스타트업"

. . 그래픽스 프로그래밍 개념 공부 및 재활훈련겸 보기 시작했던 책 "유니티 그래픽스 최적화 스타트업" 오지현 저 ​ 전부 읽고 내용정리까지 마무리 했습니다. 기본적인 렌더링 개념부터 최적화에 필요한 필수 내용들도 하나씩 다루고 있어 내용이 알찹니다. ​ 유니티로 그래픽스 관련 작업을 한다면 한 번은 읽어볼만한 내용들도 많고요, 유니티의 렌더링 특징에 대해서도 깨알같이 다루는 내용들이 많습니다. ​ 아래는 내용정리 포스트 링크 모음. 챕터 제목을 클릭하면 열립니다. ​ 1.최적화 개요 2.렌더링 파이프라인 3.병목 4.드로우콜과 배칭 (Draw Call & Batching) 5.라이팅 (Lighting) 6.그림자 (Shadow) 7.GI (Global Illumination) 8.텍스처 (Textur..

유니티 그래픽스 최적화 - 9.SRP;LWRP

9. SRP;LWRP 최적화의 가장 중요, 병목 제거 ​ 9-1 SRP (Scriptable Render Pipeline) 유니티 2018부터 Scriptable Render Pipeline 제공. 렌더링 처리 방식을 C#으로 제어 가능. 라이팅 처리 방식, 전반적 렌더링 루프 직접 구성 가능. 새로운 렌더링 기술 직접 적용하거나, 특정 하드웨어에 맞게 최적화도. ​ GPU 렌더 파이프라인뿐 아니라, 어플리케이션 스테이지 렌더 루프 모두 포함. 한 프레임 렌더링에 들어가는 컬링, 펜더 패스, 멀티 패스 모든 절차 아우름. ​ 기존 유니티 렌더 파이프라인은 블랙박스. 공개되지 않았다. SRP 를 통해 제어하고 커스터마이징 가능. 기본 렌더 파이프라인은 Built-in 파이프라인이라고 부름. 앞서 설명한 포..

유니티 그래픽스 최적화 - 8.텍스처 (Texture)

. . 8. 텍스처 (Texture) ​ 8-1 인트로 텍스처는 주로 픽셀쉐이더 단계에서 사용. 텍스처 값 샘플링 > 최종컬러 반영. (Vertex Texture Fetch 기법은 논외) 참고 : 텍스처 사용은 아래 참고 https://youtu.be/-6iquaC0Hf4 ​ 8-2 대역폭 (Bandwidth) 텍스처 병목 = 메모리 대역폭에 종속( Memory Bandwidth ) 이미지 데이터 사이즈가 커지면 대역폭 문제 발생. 프로세서가 한 번에 가져올 수 있는 데이터 크기 한정. ​ 모바일 기기 더욱 이슈. 전력소모, 물리적으로 작아서 쿨링 미미, 발열 문제. 그래서 대역폭이 작게 설계. CPU, GPU 뿐 아니라 메모리도 발열과 전력 소모에 큰 영향. 쓰로틀링(Throttling, Thermal..

유니티 그래픽스 최적화 - 7.GI (Global Illumination)

. . 7. GI (Global Illumination) ​ 라이트와 그림자는 연산이 비싸기 때문에 라이트맵과 라이트 프로브 등 미리 연산하는 솔루션들을 적극 활용, 절약하면 좋다. GI 적용 가능. 광원이 태양광 하나로 출발해도 Direction 라이트 영향, 튕겨서 들어오는 Indirection 라이트 영향도 받음. 어떤 지점은 Direction 영향은 막히고, Indirection 영향만 받기도. https://docs.unity3d.com/kr/current/Manual/LightMode-Baked.html ​ 이 현상을 글로벌 일루미네이션(Global Illumination) 라이트맵과 라이트프로브를 이용해서 GI현상까지 미리 연상하여 기록해놓을수 있다. 실시간으로 GI를 처리하려면 많은 연산 ..

유니티 그래픽스 최적화 - 6.그림자 (Shadow)

. . 6-1 쉐도우맵 ​ Mesh Renderer 컴포넌트의 Cast Shadows 항목은 오브젝트의 그림자가 다른 오브젝트에 드리우는지, Receive Shadows 항목은 오브젝트에 다른 오브젝트의 그림자를 받는지. ​ 정적인 오브젝트는 라이트맵을 활용. 라이트맵은 GI(7장)에서 다룸. ​ 유니티는 쉐도우맵 기법을 사용. 그림자의 깊이를 저장하는 버퍼 생성, 픽셀쉐이더(Pixel Shader)에서 깊이를 비교하는 과정 거침. 넓은 영역은 여러 구역으로 나누기도 함(Cascade) 계단 현상을 없애기 위해 여러 번 샘플링, 필터링 처리 등. 렌더링 비용 중 많은 부분을 차지. ----- 셀프 쉐도우 (Self Shadow) 오브젝트 자기 자신의 그림자를 드리우는 기능. ----- ​ 쉐도우맵의 원리..

728x90
반응형