일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Lv2
- 백준 c++ 2468번
- 코테
- 코딩테스트
- Unity
- dfs
- Algorithm
- 백준 1103번 게임
- Lv.3
- 백준 1103번
- 2870번 수학숙제
- 백준 1103번 c++
- 백준
- 백준 17070번
- 플레이어 이동
- 수학숙제
- Beakjoon
- 오브젝트 풀링
- 17070번
- 2870번 수학숙제 c++
- 유니티
- c++
- 백준 2870번
- C#
- 2870번
- 프로그래머스
- 백준 c++ 2870번
- 2468 c++
- 2870번 c++
- 백준 17070번 c++
- Today
- Total
주녘공부일지
[ShootingGame] 8. 최적화의 기본, 오브젝트 풀링 본문
1. 오브젝트 풀링
오브젝트 풀링 : 미리 생성해둔 풀에서 활성화 / 비활성화로 사용
https://godgjwnsgur7.tistory.com/21
[Unity] Object Pooling 기법
Object Pooling : 오브젝트를 재활용하기 위한 디자인 패턴 ( 최적화 ) 빈번히 생성, 파괴되는 오브젝트들을 풀에 모아서 미리 생성해놓고 활성화 / 비활성화로 관리하며 재사용 - 런타임 중에 수십개
godgjwnsgur7.tistory.com
2. 풀 사용
public ObejctManager obejectManager;
- Instantiate()는 MakeObj() 호출로 변경
( transform.position 로직 작성 ) // 생성 시에 위치를 주지 않기 때문
- Destory() 는 SetActive(false) 로 변경
+ class Enemy()는 프리팹이기 때문에 게임 매니저가 줌
+ ObjectManager를 제외한 모든 곳에 적용
3. 로직 정리
3-1. 재사용하는 오브젝트 관리
- OnEnable()을 활용하여 활성화 될때마다 다시 초기화
https://godgjwnsgur7.tistory.com/6
[Unity] Start()와 Awake() 그리고, OnEnable()
1. Awake() - 오브젝트가 비활성화되어 있어도 호출가능 ex) 게임의 상태, 변수를 초기화 2. OnEnable() - 오브젝트가 활성화 될 때마다 호출 (여러번 호출 가능) 3. Start() - 오브젝트가 활성화 된 경우에
godgjwnsgur7.tistory.com
3-2. FInd 함수 변경
- 오브젝트를 직접 찾는 Find 계열 함수도 성능 부하를 유발할 수 있기 때문에 GetPool()로 변경
- 코드는 길어졌지만, 메모리 상의 최적화는 이루어짐
MakeObj(), GetPool()
+ 활성화 오브젝트를 따로 관리하는 배열도 있다면 더욱 좋음
https://github.com/godgjwnsgur7/ShootingGame
GitHub - godgjwnsgur7/ShootingGame
Contribute to godgjwnsgur7/ShootingGame development by creating an account on GitHub.
github.com
강의 출처
https://www.youtube.com/watch?v=x-5eHMRSgeg&list=PLO-mt5Iu5TeYtWvM9eN-xnwRbyUAMWd3b&index=8
'GameDevelopment > [Unity] Lecture' 카테고리의 다른 글
[ShootingGame] 10. 따라다니는 보조무기 만들기 (0) | 2022.02.03 |
---|---|
[ShootingGame] 9. 텍스트파일을 이용한 커스텀 배치 구현 ( + 구조체 ) (0) | 2022.02.02 |
[ShootingGame] 7. 원근감있는 무한 배경 만들기 + 페럴렉스, 스크롤링 (0) | 2022.01.31 |
[ShootingGame] 6. 아이템과 필살기 구현하기 (0) | 2022.01.29 |
[ShootingGame] 5. UI 간단하게 완성하기 (0) | 2022.01.28 |