안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

레이블이 ScriptableObject인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ScriptableObject인 게시물을 표시합니다. 모든 게시물 표시

2026년 1월 1일 목요일

[유니티][Unity] ScriptableObject란?

  씬에 붙지 않는 데이터 전용 객체 이다.


 인스펙터에서 값이 수정가능한 데이터 파일이다.

 여러 오브젝트가 같은 데이터를 공유하게 된다.


 씬과 생명주기에서 독립 된 에디터에서 관리 가능한 데이터 덩어리


 카드 기본 정보, 아이템 스텟, 스킬 쿨타임 등을 저장해 놓는다.


 말하자면 스텟을 미리 저장해 놓는 설계도의 역할을 한다고 보면된다.

 

 런타임 상태 관리, 플레이어 마다 다른 값 유지 등은 할 수 없다. 


 에셋과 붙어있는 데이터이기 때문에 에셋 데이터를 바꾸는 게 되기 때문이다.


챗지피티의 도움을 받아 작성하였습니다.


 

2025년 12월 6일 토요일

[유니티][Unity] Color 값을 메인케릭터와 보스가 같이 공유해서 사용하는 방법

 ScriptableObject를 통해 만들어진 컬러 값을 가져와서 사용하면 된다.

아래 코드 같이 만든 후 사용한다.


using NUnit.Framework;

using UnityEngine;

using System.Collections.Generic;


[CreateAssetMenu(menuName = "UI/HP Color Config")]

public class HpColorConfig : ScriptableObject

{

    public List<Color> hpBarColors;

    public Color animatedBarColor;

    public Color depletedHPColor = Color.black;    

}


CreateAssetMenu를 통해 UI  -> HP Color Config라는 메뉴가 생겼다.


Project의 Assets 폴더에서 Create -> UI -> HP Color Config를 누르면 생기는데 그 이름을 HP Color Config로 저장하자. 이것을 HP Color Config Asset이라 한다. 그걸 눌러보면 위에 선언한 Color 값들을 Inspector에서 조절할 수 있다. 이렇게 만들어 놓은 값들을 사용하기 위해 사용하려는 곳에 가서 

    [Header("Config")]

    [SerializeField] private HpColorConfig colorConfig;

로 선언하고 이 colorConfig 값에 만들어 놓은 HP Color Config Asset을 넣으면 연동이 된다.

 그 후 colorConfig.hpBarColors[index] 라는 식으로 사용하면 된다.


 chatGPT의 도움을 받아 작성하였습니다.