반응형
Unity를 사용하면서 커스텀 스크립트를 작성할 때, 종종 Reset 및 OnValidate와 같은 몇몇 특별한 메서드들을 발견하게 됩니다. 이러한 메서드들은 에디터에서 작업을 할 때 유용한 도구로 작용할 수 있습니다. 이 포스트에서는 Reset과 OnValidate 메서드에 대해 자세히 알아보겠습니다.
Reset 메서드
Reset 메서드는 컴포넌트의 컨텍스트 메뉴에서 "Reset" 옵션을 선택하거나, 컴포넌트를 처음 게임 오브젝트에 추가했을 때 호출됩니다.
활용 방법:
- 초기 설정 값을 설정할 때
- 사용자가 스크립트의 값들을 초기 상태로 돌리고 싶을 때
using UnityEngine;
public class SampleComponent : MonoBehaviour
{
public int sampleValue;
void Reset()
{
sampleValue = 10;
}
}
위의 스크립트에서, Reset 메서드가 호출되면 sampleValue는 10으로 초기화됩니다.
OnValidate 메서드
OnValidate 메서드는 스크립트의 인스펙터에서 변수의 값을 변경할 때마다 호출됩니다. 이는 에디터 모드에서만 동작하며, 런타임에서는 동작하지 않습니다.
활용 방법:
- 입력 값의 유효성 검사
- 변수 값 변경 시 추가 동작이 필요할 때
- 변수의 변경을 감지하고 그에 따른 후속 처리를 할 때
using UnityEngine;
[ExecuteInEditMode]
public class ValidateComponent : MonoBehaviour
{
[Range(0, 10)]
public int rangeValue;
void OnValidate()
{
if (rangeValue < 3)
{
Debug.Log("Value is less than 3!");
}
}
}
위의 스크립트에서, rangeValue가 3보다 작게 변경되면 콘솔에 메시지가 출력됩니다.
정리
UnityEditor에서 제공하는 Reset과 OnValidate 메서드는 개발 플로우를 효율화하는데 큰 도움을 줍니다. 초기화 작업이나 값의 유효성 검사 등, 에디터 내에서의 작업을 편리하게 만들어주는 이러한 메서드들에 익숙해지면, 개발 과정에서 큰 이점을 얻을 수 있습니다.
'Unity' 카테고리의 다른 글
Unity에서 게임오브젝트를 찾는 방법 2 (0) | 2023.09.26 |
---|---|
Unity에서 게임오브젝트를 찾는 방법 1 (0) | 2023.09.25 |
스크립트를 통해 게임 오브젝트에 컴포넌트 추가하기 (0) | 2023.09.21 |
Setting : Resolution and Presentation (0) | 2023.09.20 |
왜 transform.position.x를 직접적으로 수정 할 수 없을까?? (0) | 2023.09.04 |