-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시 보기 - 프로토타입보관함 2020. 2. 8. 19:08
이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다.
이번 포스팅에서는 Part 2의 네 번째 패턴인 프로토타입 패턴을 살펴보고 유니티에 적용된 프로토타입 패턴인 프리팹에 대해 이해하는 것을 목표로 한다.
프로토타입 패턴이란?)
[GoF디자인 패턴]에서는 프로토타입 패턴을 다음과 같이 소개했다.
원형이 되는 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해서 새로운 객체를 생성합니다.
이 프로토타입 패턴의 핵심을 저자는 다음과 같이 설명했다.
핵심은 어떤 객체가 자기와 비슷한 객체를 스폰할 수 있다는 점이다.
즉, 프로토타입 패턴은 내가 원하는 모양과 상태를 가진 객체를 미리 만들어 두고 그 객체를 복사해 사용하는 것을 말하는 것이다.
아마 유니티를 다루는 사람이라면 굉장히 친숙한 개념일 것이다. 바로 유니티의 프리팹이 이에 해당한다.
유니티 프리팹)
유니티의 프리팹은 Hierarchy 창에서 Project 창으로 오브젝트를 드래그 & 드롭하여 생성한다.
프리팹을 사용하여 인스턴스를 생성하는 것은 반대로 프로젝트 창에서 Hierarchy 창 혹은 Scene창으로 프리팹을 드래그 & 드롭하면 된다.
유니티의 경우 인스턴스를 생성한 뒤에 인스턴스에 수정이 없는 경우 원본에 변화를 줄 때 즉각적으로 반영되게 됩니다.
반대로 인스턴스를 수정한 뒤 변화를 적용하여 원본을 인스턴스의 값으로 적용시킬 수도 있습니다.
더 상세한 내용은 [Unity 매뉴얼 - 프리팹]을 참고하시기 바랍니다.
추가정보)
- 프로토타입을 기반으로 하는 셀프라는 언어가 존재한다.
- 자바 스크립트는 셀프에서 영감을 받아 제작되었으나 프로토타입기반 언어의 핵심인 복제를 찾아볼 수 없다는 점에서 셀프와의 차이점을 가진다.
- 일회성 특수 객체가 많이 등장하는 게임의 데이터 모델링에 프로토타입 패턴을 적용하면 중복을 줄일 수 있다.