본문 바로가기
게임 프로그래밍/게임개발 중급

게임개발 중급(10) - 2D 플랫포머 게임 만들기(5), 프리팹(Prefab)

by jyppro 2023. 4. 29.

2D 플랫포머 게임 만들기(5), 프리팹(Prefab)

 

저번에 진행했던 코인을 먹으면 점수가 오르도록 하는 코드, 그리고 최적화에 이어서 진행하겠습니다.

 

코인으로 저희가 예제를 작성할 때, 콜라이더를 가진 코인 오브젝트를 여러개 만들었습니다. 예제에서는 4개정도 만드는 것에 그쳤지만, 실제로 저희가 게임을 만들다 보면 계속해서 사용되고, 등장하는 오브젝트들이 있습니다. 그 대표적인 예시가 바로 코인입니다. 근데 수많은 오브젝트를 일일이 만드는 것은 개발자 답지 않고, 쓸데없이 불편합니다.

 

그래서 유니티에서는 프리팹(Prefab)이라는 것을 사용합니다. 프리팹은 재사용 가능한 게임 오브젝트(Game Object)를 의미합니다. 프리팹은 게임 오브젝트와 그것이 가지고 있는 모든 컴포넌트들을 하나의 파일로 묶어둔 것으로, 이를 템플릿처럼 사용할 수 있습니다.

프리팹은 한번 만들어 두면, 그것을 여러 곳에서 사용할 수 있습니다. 프리팹을 사용하면 여러 오브젝트가 같은 기능을 수행하도록 만들 수 있고, 이를 통해 유지보수성을 향상시킬 수 있습니다.

프리팹을 만들기 위해서는 먼저 오브젝트를 하나 만들고, 해당 오브젝트에 컴포넌트들을 추가한 후 프리팹으로 저장하면 됩니다. 그러면 해당 프리팹을 다른 씬(Scene)에서도 사용할 수 있습니다. 프리팹 에셋을 생성하려면 Hierarchy 창의 게임 오브젝트를 Project 창으로 드래그하면 됩니다.

프리팹은 유니티의 에디터에서 쉽게 만들 수 있으며, 스크립트에서도 만들고 사용할 수 있습니다. 예를 들어, 다음과 같이 스크립트에서 프리팹을 로드할 수 있습니다.

 

public GameObject prefab; // 프리팹 오브젝트

void Start()
{
    GameObject newObject = Instantiate(prefab); // 프리팹으로부터 새로운 오브젝트 생성
}

 

위 코드에서 Instantiate 함수를 사용하여 프리팹으로부터 새로운 오브젝트를 생성하고, 이를 newObject 변수에 할당합니다. 이후에는 해당 오브젝트를 필요한 대로 조작할 수 있습니다.

 

그렇다면 이제 이 프리팹을 코인에 적용시켜 보겠습니다.

 

먼저, 코인 이외에 다른 프리팹을 사용하게 될 수 있으니 Prefabs 폴더를 생성해주고, 그곳에 드래그 앱 드롭을 통해 코인 프리팹을 생성해줍니다.

 

하이어라키 창
파란색으로 표시된 프리팹

프리팹이 생성되면, 기존의 하이어라키 창에 있던 오브젝트가 파란색으로 바뀌며 프리팹으로 생성되었다고 알려줍니다.

 

프로젝트 창
Prefabs 폴더 안에 생성된 Coin 프리팹

 

프리팹 폴더 안에 코인 프리팹이 잘 생성된 것을 확인해 볼 수 있습니다.

 

일단 오늘은 프리팹을 생성하는 단계까지만 하도록 하고, 다음에는 이전에 게임개발 단계의 제너레이터 스크립트에 해당하는 코드를 작성해 볼 것입니다. 만들어진 프리팹을 사용하여 3초 마다 랜덤한 위치에 코인이 계속 생성되도록 만들어 보겠습니다. 감사합니다.