반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 다른 시트값
- git
- 라이더
- ilcode
- unity 받기
- 스프레드 시트
- 한달리뷰
- 유니티
- navmeshagent
- Mac
- cmd키 변경
- monocraft
- C#
- navmesh
- rider 설치
- unity
- unity 구버전
- ilviewer
- 스프레드시트
- 테크스트림
- 백준
- 엑셀 가져오기
- 알고리즘
- 다각형 중점
- 엑셀 내보내기
- 유니티 해상도 고정
- 진수 변환기
- 스프레드시트 사용법
- Mac 상단바 아이콘 이동
- Rider
Archives
- Today
- Total
코스모스 공작소
Unity 오브젝트 풀로 탄환 관리 최적화하기 본문
반응형
유니티에서 Instantiate , Destory는 가비지 컬랙터를 소환한다.
가비지 컬랙터란 자동 메모리 청소라고 생각하면 된다. 쓰이지 않거나 버려져서 메모리를 차지하고 있는 영역을 비워주어 공간을 확보한다. 하지만 가비지 컬랙터가 실행되는 순간에 cpu의 점유율이 높아지고 게임 환경에 지장을 준다.
따라서 효율적으로 사용하기 위해 가비지 컬렉션을 회피하여야 하는데 좋은 수단 중 하나가 오브젝트 풀을 이용하여 자원들을 관리하는 것 특히 같은 오브젝트를 여러번 사용하는 탄환 발사 등이 좋은 예시이다.
•요구사항
1.오브젝트들이 필요한 씬에 공급 가능해야함 -> 싱글톤 패턴 이용
2.풀에서 꺼내는 기능(pop)
3.풀에 다시 반환하는 기능(push)
4.풀에 적재된 오브젝트가 없을 때는 새로 생성하여 꺼낸다.
1. 오브젝트 풀
•Projectile -> 총알을 담는 list
•impact -> Hit에 생성되는 이펙트list
•Muzzle -> 총알을 발사할때 생성되는 이펙트 list
2. 총알 발사 모듈
•발사 시작시 Muzzle 이펙트 출력
•출력 완료시 오브젝트 풀로 push
•발사체 발사
3. 충돌 판정
•충돌시 impact 이펙트 출력 (pop)
•Impact 출력완료시 오프젝트 풀로 반납(push)
•발사체 일정 시간 후 오브젝트 풀로 반납(push)
https://github.com/wjs991/Objectpool
반응형
'프로그래밍 > Unity' 카테고리의 다른 글
[Unity] 사운드 재생중 사운드 세팅 변경시 사운드 미출력 (0) | 2022.12.09 |
---|---|
[Unity] 3D 오브젝트 마우스 포인터 따라 이동하기 (0) | 2022.08.21 |
Unity로 카메라 반동만들기 (camera shake) (0) | 2019.12.10 |
Unity 다이얼로그(대화창) 만들기 (8) | 2019.12.05 |
게임 오브젝트 화면 안에 가두기 (0) | 2018.07.22 |
Comments