본문 바로가기

개발/펭귄 키우기

21.03.24 개발일지 : Panel 분리 작업 완료.

21.03.24 개발일지 : Panel 분리 작업 완료.
Panel 을 새로 만들어서 Text 만 사용하도록 분리하는 건 어렵지 않은 작업이네요.
1. 제가 구현한 방식은 GameObject 를 가리키는 포인터를 이용한 메모리 풀 형태 기반입니다. 그래서 GameObject 에 속해 있는 Script 를 삭제, 추가, 찾기 기능을 사용할 때 Unity3D 내장 기능을 사용하지 않고 단순히 포인터로 조작하면 가능해 집니다. 이렇게 스크립트를 GameObject 에 너무 연관되지 않도록 만들었던 점이 유리하게 작동된 듯 싶습니다.
2. 이미지, 버튼, 텍스트를 구별하는 용도로 GameObject 에 Type 기능(변수)만 만든 상태에서, Depth 기능(변수)을 추가로 만들 때 처음에는 Type 기능 변수를 사용하여 만들었습니다. Type 이 GameObject 를 구별하는 요소였고 Depth 기능으로도 사용하기 적합했기 때문이죠. 개발을 진행할 수록 Type 기능과 Depth 기능을 분리해야겠다는 생각이 들었습니다. Depth 위치를 직접 조정할 수 있도록 만들려면 Type 기능과 Depth 기능의 분리가 필요했기 때문입니다. 현재는 Type 기능과 Depth 기능을 분리하여 만들었습니다. 개발하는 데 좀 시간이 걸렸었고 그 당시에는 시간을 들여가면서 굳이 Type 과 Depth 기능을 분리할 필요가 있을까 생각을 했었는데 현재 Panel 분리할 때 유용하게 사용되네요. Panel 분리 작업을 진행하면서 각 Panel 안에 공통적으로 속해 있는 중복 요소(이미지 그룹, 버튼 그룹, 텍스트 그룹) 를 구별할 때 Type 값으로 단번에 분리할 수 있는 점이 참 유용합니다. 유동적으로 변동되는 Depth 값을 가지고 Panel 에 GameObject 를 위치시키는 건 불가능하기 때문입니다. 가능하더라도 Depth 값이 유동적으로 계속 변동되면 GameObject 가 속해 있는 Panel 의 위치를 실시간으로 변동해야 되는데 비용이 많이 들고 게임 렉이 걸리겠죠. (결론은 필요하다고 생각하고 만들었던 건 나중에 확실히 도움이 된다는 것!)

1. Panel 은 분리가 완료되었고 이제 해야 될 작업은 공격 또는 힐을 할 때 대미지를 텍스트로 표시해야 되겠네요.
2. 몬스터를 잡았을 경우 남은 몬스터 수를 카운터하는 작업도 할 생각입니다.