AssetDatabase 클래스를 사용하여 스크립트에서 에셋 생성 및 수정

2023. 12. 21. 11:16·Unity/Tip
반응형

Unity에서 에셋은 게임의 데이터를 저장하는 데 사용되는 파일입니다. 에셋에는 모델, 애니메이션, 사운드, 텍스처, 스크립트 등이 포함될 수 있습니다.

Unity에서는 스크립트에서 에셋을 생성하고 수정할 수 있습니다. 이를 위해서는 AssetDatabase 클래스를 사용합니다.

 

AssetDatabase 클래스

AssetDatabase 클래스는 에셋을 관리하는 데 사용되는 Unity의 기본 클래스입니다. 이 클래스는 에셋을 생성, 삭제, 수정, 검색하는 데 사용할 수 있습니다.

에셋 생성

AssetDatabase 클래스를 사용하여 에셋을 생성하려면 다음과 같은 단계를 수행합니다.

  1. AssetDatabase.CreateAsset() 메서드를 호출합니다.
  2. 메서드의 인수로 에셋의 데이터를 지정합니다.

예를 들어, 다음 코드는 ScriptableObject 에셋을 생성합니다.

public class Person : ScriptableObject
{
    // 에셋의 데이터를 저장할 프로퍼티를 선언합니다.
    public string name;
    public int age;
}

// ScriptableObject 에셋을 생성합니다.
Person christmas = ScriptableObject.CreateInstacne<Person>();
christmas.name = "Santa Claus";
christmas.age = 2000;

// 에셋을 저장합니다.
AssetDatabase.CreateAsset(christmas, "Assets/christmas.asset");

이 코드는 Assets 폴더에 christmas라는 이름의 ScriptableObject 에셋을 생성합니다. name 변수에는 Santa Claus가, age에는 2000으로 저장됩니다.

 

에셋 수정

AssetDatabase 클래스를 사용하여 에셋을 수정하려면 다음과 같은 단계를 수행합니다.

  1. AssetDatabase.LoadAssetAtPath() 메서드를 사용하여 에셋을 로드합니다.
  2. 에셋의 데이터를 수정합니다.
  3. AssetDatabase.SaveAssets() 메서드를 사용하여 에셋을 저장합니다.

예를 들어, 다음 코드는 christmas 에셋의 이름을 변경합니다.

// ScriptableObject 에셋을 로드합니다.
Person christmas = AssetDatabase.LoadAssetAtPath<Person>("Assets/christmas.asset");

// 에셋의 데이터를 수정합니다.
christmas.name = "Rudolph";

// 에셋을 저장합니다.
AssetDatabase.SaveAssets();

이 예제는 christmas.asset 에셋의 이름을 Rudolph로 변경합니다.

 

에셋 이름 변경

AssetDatabase 클래스에는 에셋의 파일명을 변경할 수 있는 메서드인 RenameAsset() 함수가 있습니다.

예를 들어, 다음 코드는 christmas.asset을 rudolph.asset으로 변경합니다.

AssetDatabase.RenameAsset("Assets/christmas.asset", "rudolph");

 

추가 설명

AssetDatabase.CreateAsset() 메서드를 사용하여 에셋을 생성할 때는 에셋의 데이터를 객체로 전달합니다. 

ScriptableObject 객체를 생성 할 때엔 ScriptableObject.CreateInstance() 메서드를 사용해야 합니다.

AssetDatabase.LoadAssetAtPath() 메서드를 사용하여 에셋을 로드할 때는 에셋의 경로를 문자열로 전달합니다.

AssetDatabase.SaveAssets() 메서드를 사용하여 에셋을 저장할 때는 에셋의 데이터를 변경한 후 호출해야 합니다.

요약

AssetDatabase 클래스를 사용하여 스크립트에서 에셋을 생성하고 수정할 수 있습니다. 이 클래스를 사용하여 게임의 데이터를 관리하고 게임 플레이를 개선할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity > Tip' 카테고리의 다른 글

콜라이더 충돌 검사 : Physics.Overlap vs NonAlloc  (0) 2024.01.05
유니티의 메타(meta) 파일은 무엇인가?  (1) 2023.12.22
Unity에서 패키지의 버전을 변경하는 방법  (0) 2023.12.17
오브젝트 파괴 시 OnDestroy 이벤트 함수가 호출되지 않을 수 있다??  (0) 2023.12.09
Unity의 Ray에 찍힌 오브젝트를 검출하지 못하는 조건  (0) 2023.12.01
'Unity/Tip' 카테고리의 다른 글
  • 콜라이더 충돌 검사 : Physics.Overlap vs NonAlloc
  • 유니티의 메타(meta) 파일은 무엇인가?
  • Unity에서 패키지의 버전을 변경하는 방법
  • 오브젝트 파괴 시 OnDestroy 이벤트 함수가 호출되지 않을 수 있다??
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    unity
    codingtips
    스크립트 실행
    스마트스토어리뷰
    rtsp
    devlife
    리뷰관리
    C#
    programming101
    Python
    programmerlife
    스크립트 실행 순서
    카페24리뷰
    리스트
    긴유통기한우유
    ipcamera
    파이썬
    learntocode
    믈레코비타멸균우유
    라떼우유
    셀레니움
    유니티
    카페24리뷰이관
    codingcommunity
    리뷰이관
    cv2
    list
    상품 리뷰 크롤링
    appdevelopment
    쇼핑몰리뷰
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
AssetDatabase 클래스를 사용하여 스크립트에서 에셋 생성 및 수정
상단으로

티스토리툴바