250x250
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 |
Tags
- Ainimation Blending
- 프리팹
- rigidbody
- joystick
- 플레이어 이동
- raycasting
- Prefabs
- 2D슈팅게임
- CSharp #자료구조
- Vector3
- 오브젝트 풀링
- Transform
- Unity
- Scrooling
- Object Pooling
- 스크롤링
- 일시정지
- 패럴렉스
- 플레이어 방향전환
- Hpbar
- Blend Type
- LayerMark
- rotation
- Hp바
- raycast
- Parallax
- apk
- 유니티
- Object Poling
- Animation State Machine
Archives
- Today
- Total
주녘공부일지
[더 챌린저스] 오브젝트 풀링 본문
728x90
오브젝트 풀링
public class ObjectPoolMgr
{
class Pool { ... }
Dictionary<string, Pool> pools = new Dictionary<string, Pool>();
Transform root;
int poolCount = 5;
public void Init()
{
if (root == null)
{
root = new GameObject { name = "@Pool_Root" }.transform;
}
PhotonPrefabPool.Init();
}
public void CreatePool(GameObject original, int count)
{
Pool pool = new Pool();
pool.Init(original, count);
pool.Root.parent = root;
pools.Add(original.name, pool);
}
public void Push(Poolable poolable)
{
string name = poolable.gameObject.name;
if(pools.ContainsKey(name) == false) // 이 경우엔 파괴
{
GameObject.Destroy(poolable.gameObject);
return;
}
pools[name].Push(poolable);
}
public Poolable Pop(GameObject original, Transform parent = null)
{
if (pools.ContainsKey(original.name) == false)
CreatePool(original, poolCount); // poolCount만큼 생성
return pools[original.name].Pop(parent);
}
public void GeneratePool(GameObject original, int count, Transform parent = null)
{
if (pools.ContainsKey(original.name) == true)
{
pools.TryGetValue(original.name, out var _pool);
_pool.Add(original, count);
return;
}
CreatePool(original, count);
}
}
+ 사운드오브젝트들은 사운드매니저에서 게임이 시작될 때 따로 풀링하고 관리함
-> 한번 생성되면 게임을 종료할 때까지 사용하므로 DontDestroyOnLoad로 생성
728x90
'GameEngine > Unity - Project' 카테고리의 다른 글
[페인트 맨] 다국어 지원 시스템 (Localization) (0) | 2024.03.29 |
---|---|
[퍼즐 게임] 게임 플레이 영상, 매칭 이벤트 (채용 과제) (0) | 2023.09.29 |
[더 챌린저스] 네트워크 관련 (0) | 2023.08.23 |
[더 챌린저스] 게임 플레이 영상 (0) | 2023.08.20 |
[컴공생 키우기] 미니게임 (0) | 2023.08.16 |