본문 바로가기
디지털노마드

[챗GPT게임개발48] GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하기(2): Scriptable Objects

by 인텔리노마드라이프 2024. 6. 7.
728x90

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.

오늘은 GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하기 2번째 이야기(Scriptable Objects)를 해볼께요. 

[인텔리원 스튜디오]

[오늘의 목표] GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하기(2): Scriptable Objects
[오늘 살펴볼 UI]

 

 이 글은 Unity 에서 제공한 Gem Hunter Project를 활용했어요.

게임 레벨 관리 방법

지난 기사에서 Level List 인스턴스를 생성했어요.

이 Level List 를 설명하려면 Scriptable Object에 대한 이해가 필요해요.

 

* 2024.06.07 - [디지털노마드] - [챗GPT게임개발47] GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하기(1)

 

[챗GPT게임개발47] GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가하

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.오늘은 GPT-4, GPT-4o 활용해서 Unity UI Toolkit을 사용하여 자동으로 레벨 선택 항목 추가해볼께요.[오늘의 목표] GPT-4, GPT-4o 활용해서 Unity UI Toolkit

intellinomadlife.tistory.com

 

Scriptable Objects 란?

Unity에서 Scriptable Objects는 데이터 중심의 클래스를 정의하고 인스턴스를 생성하여 데이터 자산을 쉽게 관리할 수 있게 하는 기능이에요.

 

Scriptable Objects를 사용하면 게임 내의 데이터(예: 설정, 상태, 아이템, 스킬 등)를 효율적으로 저장하고 재사용할 수 있어요. 주로 게임의 상태나 구성 데이터를 저장하고, 이를 다양한 게임 객체에 적용하여 코드의 복잡성을 줄이고, 메모리 사용을 최적화하는 데 사용돼요.

 

주요 특징 및 장점

  1. 데이터 중심 설계: Scriptable Objects는 게임 오브젝트나 씬과 독립적으로 존재하므로, 데이터를 독립적으로 관리할 수 있어요. 이를 통해 코드와 데이터의 분리를 쉽게 할 수 있어요.
  2. 재사용성: 한 번 만든 Scriptable Object 인스턴스는 여러 게임 객체에서 재사용할 수 있어요. 이는 중복 데이터를 줄이고 일관성을 유지하는 데 도움이 돼요.
  3. 메모리 최적화: Scriptable Objects는 메모리에서 효율적으로 관리돼요. 동일한 데이터 인스턴스를 여러 객체가 공유하므로 메모리 사용량을 줄일 수 있어요.
  4. 편리한 에디터 지원: 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)입니다.

감사합니다.

728x90