안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.
오늘은 GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하기 2번째 이야기(Scriptable Objects)를 해볼께요.
[오늘의 목표] GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하기(2): Scriptable Objects
※ 이 글은 Unity 에서 제공한 Gem Hunter Project를 활용했어요.
게임 레벨 관리 방법
지난 기사에서 Level List 인스턴스를 생성했어요.
이 Level List 를 설명하려면 Scriptable Object에 대한 이해가 필요해요.
Scriptable Objects 란?
Unity에서 Scriptable Objects는 데이터 중심의 클래스를 정의하고 인스턴스를 생성하여 데이터 자산을 쉽게 관리할 수 있게 하는 기능이에요.
Scriptable Objects를 사용하면 게임 내의 데이터(예: 설정, 상태, 아이템, 스킬 등)를 효율적으로 저장하고 재사용할 수 있어요. 주로 게임의 상태나 구성 데이터를 저장하고, 이를 다양한 게임 객체에 적용하여 코드의 복잡성을 줄이고, 메모리 사용을 최적화하는 데 사용돼요.
주요 특징 및 장점
- 데이터 중심 설계: Scriptable Objects는 게임 오브젝트나 씬과 독립적으로 존재하므로, 데이터를 독립적으로 관리할 수 있어요. 이를 통해 코드와 데이터의 분리를 쉽게 할 수 있어요.
- 재사용성: 한 번 만든 Scriptable Object 인스턴스는 여러 게임 객체에서 재사용할 수 있어요. 이는 중복 데이터를 줄이고 일관성을 유지하는 데 도움이 돼요.
- 메모리 최적화: Scriptable Objects는 메모리에서 효율적으로 관리돼요. 동일한 데이터 인스턴스를 여러 객체가 공유하므로 메모리 사용량을 줄일 수 있어요.
- 편리한 에디터 지원: Unity 에디터에서 Scriptable Object를 시각적으로 편집할 수 있어요. 인스펙터 창에서 쉽게 값을 수정할 수 있어 디자이너나 비개발자도 데이터 조작이 가능해요.
Scriptable Object 사용 방법
- Scriptable Object 클래스 정의: ScriptableObject 클래스를 상속받아 새로운 클래스를 정의해요.
using UnityEngine;
[CreateAssetMenu(fileName = "NewItem", menuName = "Inventory/Item")]
public class Item : ScriptableObject
{
public string itemName;
public Sprite icon;
public int value;
}
- 인스턴스 생성: Unity 에디터 내에서 Scriptable Object 인스턴스를 생성해요.
- 프로젝트 창에서 우클릭 > Create > Inventory > Item을 선택하여 인스턴스를 생성할 수 있어요.
- 생성된 인스턴스는 프로젝트 내에서 자산 파일로 저장돼요.
- 게임 객체에서 Scriptable Object 사용: 생성된 Scriptable Object 인스턴스를 게임 객체에 할당하여 사용할 수 있어요.
using UnityEngine;
public class ItemDisplay : MonoBehaviour
{
public Item item; // Scriptable Object 인스턴스를 할당
void Start()
{
if (item != null)
{
Debug.Log("Item: " + item.itemName);
}
}
}
다시 정리하면 아래와 같아요.
Scriptable Objects는 게임 데이터를 효율적으로 관리하고 재사용할 수 있게 하며, 코드와 데이터의 분리를 통해 유지보수성을 높여줘요. Unity의 강력한 에디터 통합 기능을 활용하여 비개발자도 쉽게 데이터 작업을 할 수 있어, 협업과 프로젝트 개발 속도를 크게 향상시킬 수 있어요.
예제를 만들고 실행해봐요.
동영상과 같이 Item 스크립트를 만들고 아래 메뉴를 통해 Item 인스턴스를 생성할 수 있어요.
- 프로젝트 창에서 우클릭 > Create > Inventory > Item을 선택하여 인스턴스를 생성할 수 있어요.
오늘은 GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하기 2번째 이야기(Scriptable Objects)를 해봤어요.
다음 시간에는 자동으로 레벨 선택 항목을 추가하는 방법을 마무리할께요.
지금까지,
언제나 성장하는 인텔리원스튜디오(IntelliOneStudio)입니다.
감사합니다.