원형객체를 추가하는 부분까지 했음
1.Add_GameObject를 호출해서 객체를 추가해보자
오브젝트 매니저의 Add_GameObject 함수
우선 복제하기위한 원형을 Find_Prototype함수를 호출
원형의 클론함수를 호출(리턴값은 복제된 오브젝트)
이제 복제된 객체를 m_PLayer 컨테이너 추가해주자
레이어있는지를 검사해주는 Find_Layer함수를 구현하자
구현은 Find_Prototypes와 유사하다
m_pLayers를 인덱스로 접근하기때문에 찾고자하는 인덱스 iLevelIndex가 현재 최대인덱스인 m_iNumLevel보다 같거나 큰지 검사해야한다.
find_if함수에서 전에 만들어둔 함수객체를 활용하면된다.
CLayer에 객체를 추가해주는 Add_GameObject함수를 구현후
함수를 구현했으니 다시 Add_GameObject로 돌아와서
-내가 복제한 객체를 추가하고자 하는 레이어가 있는 경우
반한된 이터레이터(현재있는 레이어)에 추가
-내가 복제한 객체를 추가하고자 하는 레이어가 없는 경우
레이어를 생성해서 추가
(레이어의 Create함수와 NativeConstruct함수를 구현해주자)
1.pLayer에 레이어를 생성해서 넣어주고
2.Add_GameObject함수를 호출해 객체를 넣어주고
3.맵에 해당 레이어를 넣어주자(인덱스 연산을 사용하기때문에 iLevelIndex에 대한 예외처리가 필요하다!)
레벨로고클래스에서 private 멤버함수 Ready_Layer_BackGround() 함수를 구현하고
NativeConstruct에서 호출해주자
Ready_Layer_BackGround() 함수
게임인스턴스를 가져오고 (참조하는것이기때문에 레퍼런스 증가감소를해주자)
구현한 Add_GameObject()를 호출해주자
사본을 생성할때 사본의 데이터를 넘겨주고 싶다
클론의 인자로 void*를 받자! -> 원하는 포인터 변수를 모두 받을수있음
int형,float, 구조체포인터까지
CGameObject의 자식 함수까지 Clone함수가 Void *를 인자로 받도록 수정해주자
Clone에서 NativeConstruct를 호출해줘서 인자를넘겨줄것 -> NativeConstruct도 void *를 인자로 받아야 한다.
AddGameObject에서도 넘겨줄 데이터를 주기위해 함수를 수정해주자
레벨 로고에서 게임인스턴스를 통해 객체를 추가할때 iData인자 를 추가해보자
백그라운드의 NativeConstruct
m_iData = pArg를 해줄때 void 어디까지 주소를 사용해야할지 알지 못함 원하는 타입으로 캐스팅해줘야한다.
MainApp의 GameInstance의 Tick은
레벨매니저 뿐만아니라 오브젝트 매니저 또한 Tick을 호출해줘야한다.
오브젝트 매니저에 Tick과 Late_Tick 두개를 만들어주자
Tick과 Late_Tick 사이에 수정해줘야할 정보가 많이 생기기때문에 두 함수를 구분
CLayer에도 Tick함수를 추가해주자