예시
using UnityEngine;
public class Health : MonoBehaviour
{
[SerializeField] private int health;
[SerializeField] private int maxHealth;
private void OnValidate()
{
if (health > maxHealth)
{
health = maxHealth;
}
}
}
이 코드는 health가 maxHealth보다 크지 않도록 하기 위해 OnValidate를 사용합니다
ScriptableObject는 Inspector에서 값이 변경될 때마다 OnValidate를 호출합니다. 이를 사용하여 ScriptableObject의 데이터를 유효성 검사하거나 자동으로 업데이트할 수 있습니다.
using UnityEngine;
[CreateAssetMenu(fileName = "ItemDatabase", menuName = "Inventory/ItemDatabase")]
public class ItemDatabase : ScriptableObject
{
public List<Item> items;
private void OnValidate()
{
// 유효성 검사 또는 자동 업데이트 코드를 여기에 추가합니다.
// 예를 들어, items가 null이 아닌지 확인하고, items가 비어있지 않은지 확인할 수 있습니다.
if (items == null)
{
items = new List<Item>();
}
if (items.Count == 0)
{
Debug.LogError("Item list is empty.");
}
}
}
이 코드는 ItemDatabase의 items가 null이 아닌지 확인하고, 비어있지 않은지 확인하는 예시입니다
참고 영상 :
https://www.youtube.com/watch?v=G4jVTBA49Rc
유니티 인벤토리 만들기 - 3D게임 (0) | 2025.01.06 |
---|---|
유니티 3D 발소리,footstep,Sound 적용하기 (0) | 2024.12.24 |
유니티 인벤토리 드래그 앤 드롭 (0) | 2024.11.29 |
유니티 인벤토리 데이터 베이스 (0) | 2024.11.26 |
유니티 인벤토리 아이템 설정 (1) | 2024.11.08 |