기말 과제 까지의 진행사항 - Ritebart/3DGameArchitecture GitHub Wiki
5. 기말 과제 진행 사항
프로젝트 분리
엔진파트인 OpenGlSample 프로젝트와 게임 실행 하는 파트인 GameMaking 프로젝트를 분리시킴. GameMaking 프로젝트는 OpenGlSample 프로젝트의 헤더와 lib를 이용하여
간단하게 여러 테스트와 새로운 클래스를 만들어 상속받아 붙여서 실행할 수 있음.
NonRenderableObjectManage, RenderableObjectManage 클래스 (추가된 클래스)
NonRenderableObject 클래스 와 RenderableObject 클래스를 상속받는 Cube 클래스나 Camera 클래스 같은 클래스들을 일괄적으로 관리하고 제작하거나 삭제하는 등 접근할때
도 Manage 클래스들을 통해 접근하도록 만듬. 그러나 대표적으로 MakeCube() 함수에서 Cube를 동적생성하고 내부 벡터에 집어넣은 후 삭제하는 과정을 거치게 되나 이러한
과정을 통할 시 MakeableObjectFucCall 클래스를 통한 Init, Update, Clean의 일괄 실행이 메모리 접근 오류로 불가능해짐 그렇다고 delete를 넣지 않으면 나중에 삭제가
불가능해짐, 내부 벡터를 통한 접근도 불완전함, 메모리에 대한 추가적인 공부나 관련된 것이 필요하나 기획자로써 너무 알기 힘들어 Manage 클래스들의 사용은 막아둠.
NonRenderableObject 클래스
RenderableObject 클래스처럼 객체를 생성하는 것 만으로도 게임의 흐름에 참여되도록 만듬, 그리지는 않는 객체들이기 때문에 obj 파일 경로를 받지 않으며 Proejction 값
과 View 값을 조정할 수 있음
모든 클래스
미완성된 부분이나 쓸모 없는 부분 정리.
생각했었으나 미구현된 부분
1. Update()를 통해 Render()의 그리는 부분을 직접적으로 제어하지 못함, 추가적인 변수를 통하여 하기에는 필요가 없기에 추가하지 않았음
또한 Cube 객체같은 곳에 스크립트를 붙이는 것은 Cube 클래스의 자식으로 생성하여 함수를 사용하는 것이지만 Render()에서 그리는 부분에 직접적으로 영향을 미치지 못함
2. 레이캐스팅 개념을 통한 객체의 클릭 및 마우스의 움직임으로 오브젝트를 움직일 수 있는 부분, 기획자인 본인 수준으로는 감당 불가.
3. FBX 라이브러리를 추가하였으나 연결 오류 발생 및 사용 어려움 발생, 마찬가지로 기획자인 본인 수준으로는 해결이 도저히 불가능하여 제외됨.