게임 프로그래밍/컴포넌트 구조

프레임워크 구조 변경 사항 - 1 (오브젝트및 컴포넌트 스토어)

스스배 2023. 3. 22. 09:39

1. 레이어에 오브젝트 스토어와 컴포넌트 추가를 위한 변경사항

private:
	list<class CGameObject*>					m_GameObjects;
	unordered_map<wstring, CGameObject*>				m_objectStore;
	unordered_multimap<FamilyId, CGameObject*>			m_componentStore;

 

변경점

1)

기존 게임 클론시에 프로토타입태그 + void* pArg만 필요 했었는데

원하는 레이어에 컴포넌트 스토어 생성한 컴포넌트와 자기 자신을 넣어줘야하는 경우에 어떤 레벨의 어떤 레이어인지를 

특정할 필요가 있음.

 

그리고 오브젝트 스토어에 넣을시에도 필요함

 

그래서 게임오브젝트 클론 함수및 Initialize함수를 변경함

 

virtual CGameObject* Clone(const _tchar* pLayerTag, _uint iLevelIndex, void* pArg = nullptr) = 0;

HRESULT CGameObject::Initialize(const _tchar* pLayerTag, _uint iLevelIndex, void* pArg)
{
	if (nullptr == pLayerTag)
		return E_FAIL;

	m_iLevelindex = iLevelIndex;
	m_strLayerTag = pLayerTag;

	return S_OK;
}