유니티 Hierarchy 최적화

2022. 6. 17. 16:09·PROJECT/유니티

유니티 3D 게임 프로젝트를 진행하게되면서 최적화의 중요성을 많이 알게되었습니다.

빌드자체에서 걸리는 시간이라던가 게임플레이 도중에 발생하는 지연이라던가 그런것들을 보며 구현도 중요하지만 구현한것을 원활하게 돌아갈 수 있도록 최적화하는것이 정말 중요하구나를 깨달으며 프로젝트에 적용한 최적화 방법을 소개할까 합니다.

 

부모-자식 간의 관계를 최소화로 하자

유니티에서 Hierarchy의 depth가 깊어지면 깊어질 수록 부모의 결과를 전파하기 위한 계산이 추가됩니다.

 

부모에 대한 position이나 rotation 등 정보가 변경되면 자식들에게도 메세지를 보내게 되므로 성능에는 악영향을 끼치게됩니다.

 

 

그래서 저는 프로젝트내에서 건설과 관련된 오브젝트를 맡았었는데..

왼쪽이 이전에 있던 오브젝트 하나이고, 오른쪽이 하나의 오브젝트를 다 떼어내어 따로 분류를 해놓은 부모-자식간의 관계를 최소화로 만든 Prefeb들입니다. 저는 원래 Building하나로 오브젝트 풀에 넣어 재사용했던것을 모두 다 떼어놓아 오브젝트들 모두 각자의 prefeb으로 해결했습니다.

 

확실히 왼쪽에 있었을때의 코드들도 항상 부모-자식을 참조하고 있었기에 좋은코드라고 볼 수 없었고 저도 만들면서 일단 완성하는거에 초점을 두자라고 생각을 하며 만들긴했어서 많이 더러웠습니다.

 

하지만 최적화에 신경을 쓰게 되면서 제가 만든 오브젝트가 정말 이상한모양이라는것을 깨닫고 오른쪽처럼 기존의 오브젝트들을 하나씩 다 떼어놓고 코드들도 정리하고나니 정말 보기에도 좋고 이해하기에도 좋은 결과물이 나왔습니다.

 

좀 더 확실한 결과를 보여드리기위해 profiler 을 이용해 비포&애프터 사진을 찍어 성능비교를 하고싶었으나, 프로젝트를 하는도중에 이전 결과물이 날아가버려 (ㅠㅜ..) 구체적인 성능을 비교할 순 없었습니다.

 

하지만 계층구조가 깊으면 깊을수록 자식들의 수가 많아져 그만큼 연산(Transform...)이 늘어나기때문에 속도를 위해서라도 부모-자식 간의 관계를 최소화하는것이 좋습니다.

'PROJECT > 유니티' 카테고리의 다른 글

[개발일지] 3. 챕터 추가 및 디자인수정  (0) 2023.05.31
[개발일지] 2. 화면 제작, 수집 컨텐츠 추가  (0) 2023.04.28
[개발일지] 1. 코드 리팩토링 및 데이터변환  (0) 2023.04.01
유니티 Navigation Bake하지않고 이동제한구역(장애물)설정하기  (0) 2022.09.18
[REVIVER 개발일지] #0. 기획! 기획! 기획!  (2) 2022.09.11
'PROJECT/유니티' 카테고리의 다른 글
  • [개발일지] 2. 화면 제작, 수집 컨텐츠 추가
  • [개발일지] 1. 코드 리팩토링 및 데이터변환
  • 유니티 Navigation Bake하지않고 이동제한구역(장애물)설정하기
  • [REVIVER 개발일지] #0. 기획! 기획! 기획!
wise_
wise_
  • wise_
    WHY'S BlOG
    wise_
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • PROJECT (19)
        • 젯슨나노 프로젝트 (0)
        • 유니티 (9)
      • STUDY (37)
        • 코딩문제 (13)
        • 알고리즘 (0)
        • Effective C++ (14)
        • 유니티 (8)
        • 언리얼 (2)
      • ERROR (7)
        • 오류덩어리들 (7)
      • REVIEW (0)
      • LIFE (0)
        • 작고 소중한 내 일상 (0)
        • 작고 귀여운 내 취미 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    언리얼
    c#
    힐링
    유니티
    인디게임
    알고리즘
    퍼즐게임
    게임
    ==
    코딩
    null
    플로이드와샬
    귀여운
    wisen
    깊이우선탐색
    스마일게이트
    게임개발
    C++
    개발일지
    백준
    error
    와이즌
    1인개발
    TheFoxSeeksFriend
    윈터데브캠프
    모바일게임
    여우는오늘도친구를구한다
    힐링게임
    개발
    unity
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wise_
유니티 Hierarchy 최적화
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.