OnValidate란?
'OnValidate'는 Inspector 창에서 스크립트의 속성(프로퍼티 값)이 수정될 때마다 호출되는 함수입니다!
개발자가 인스펙터에서 속성을 수정하면 'OnValidate' 메서드를 자동으로 호출합니다. 이는 'OnValidate'를 사용하여 다른 속성을 업데이트하거나 속성이 수정될 때마다 유효성 검사를 수행할 수 있음을 의미합니다.
예를 들어 health와 maxHealth라는 두 가지 속성이 있는 스크립트가 있다고 가정해 보겠습니다!!
health가 maxHealth보다 크지 않도록 해야 합니다. 다음과 같이 OnValidate를 사용하여 개발자가 health을 잘못 수정해도 maxHealth보다 커질 수 없게 적용할 수 있습니다.
using UnityEngine;
public class Health : MonoBehaviour
{
[SerializeField] private int health;
[SerializeField] private int maxHealth;
private void OnValidate()
{
if (health > maxHealth)
{
health = maxHealth;
}
}
}
주의해야할 점은 Inspector 창에서 스크립트의 속성이 수정될 때마다 'OnValidate'가 호출된다는 점입니다!!
즉, 무한 루프나 의도하지 않은 부작용이 발생하지 않도록 'OnValidate'를 사용할 때 주의해야 합니다.