이 강연은 내용이 정말 좋았다.

Unity로 개발하면서 발생했던 문제와 해결방법들을 자세하게 설명해주셔서 보고 이해도 잘됐고

추후에 작업할 때 많은 도움이 될것 같다.


동시간대에 같이했던 프로젝트.99도 굉장히 좋았다는데 나중에 다시한번 강연을 찾아봐야겠다.


(주의 : 사진이 굉장히 많음)


AxE 개발에 Unity를 선택한 이유

- 이미 검증되어 있음.

- 비 프로그래머도 쉽게 편집 기대

- 고수준 그래픽 기대


프로파일러

Unity Profiler, 

Frame Debug, 

XCode Instruments - Time Profiler를 사용


오류수집도구

Aptelgent Crittercism - Unity 적용 쉬움,

Fabric Crashlytics를 사용





개발시 발생한 가벼운 문제들

1. Scene 전환시 메모리 문제

→ 메모리 적은 디바이스에서 씬 전환시 메모리 부족현상 발생

2. Distance 검사

→ 기능추가, 개체수 증가 - 거리검사도 부담이 됨.

→ 정확한 거리 측정보다는 범위 안에 포함되어있는지.

3. enum키를 사용하는 Dictionary

→ 결론 comparer 만들면 된다.


해결방법들은 아래의 강연자료에 자세하게 나와있다.





부족한 메모리

화면깨짐과 튕김현상 발생

Android Native Crash - 안드로이드에서 강제 종료됨을 확인

메모리 프로파일링. Dumpsys meminfo

메모리 단편화?

GC.collet - GC에 로그를 심어보자




메모리문제 해결

계속 새로운 객체를 생성하는 것을 처음 1번만 생성하여 계속 사용하도록 수정.

코루틴은 동작방식을 이해하여 자체적으로 새로 제작하여 필요한 부분만 사용하게끔해 문제를 해결함.




렌더링 최적화

많은 캐릭터와 배경 이펙트 → 프레임 드랍


렌더링 문제찾기

1. 유니티 프로파일러

배경, 캐릭터 → 플리곤 수가 많음.

스킬 이펙트 → 드로우 콜 배칭 수

2. XCode GPU 프로파일러

카메라 포스트 이펙트




배경과 캐릭터의 최적화

LOD (Level Of Detail) 사용 → Mesh, Shader 최적화

LOD 변환시 이질감(Popping) → Blending 사용하여 부드럽게. Cross Fade Shader를 사용하여 최소화




카메라 포스트 이펙트 

Bloom + Tone Mapping + LUT 방식으로 사용

Tone Mapping과 LUT는 색상 보정을 위해 사용하고 실 문제는 Bloom에서 발생


Bloom은 로비와 장비창에서는 캐릭터, 필드에서는 이펙트와 배경에 사용하는데

상이 번진것처럼 밝아지게해 그걸 기존이미지와 겹쳐 광원? 빛나는 효과를 연출하는 것.




캐릭터 스킬 이펙트 최적화

Draw Call Batching 최적화 → 렌더링 순서 옵션을 추가함.

이펙트 종류별로 아틀라스 작업



Posted by misty_
,