본문 바로가기
개발/Unity

유니티 - 퍼블릭 변수 변경시 이벤트 발생 (Public Value Event Handler)

by 피로물든딸기 2022. 10. 29.
반응형

Unity 전체 링크

 

변수 변경시 이벤트 발생 (Simple Event Handler)을 참고하여 아래의 코드를 빈 오브젝트에 추가하자.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PublicEventHandler : MonoBehaviour
{
    public int INTEGER;
    public int integer
    {
        set
        {
            integer = INTEGER;
            Debug.Log("Value : " + integer);
        }
        get
        {
            return INTEGER;
        }
    }
}

 

그리고 게임을 실행해서 INTEGER를 변경해보자.

Debug.Log가 호출되지 않는다.

 

public 변수인 INTEGER인스펙터에서 변경한다고 하더라도 아무 변화가 없다.

public 변수를 변경하였을 때 이벤트를 호출하는 간단한 방법은 OnValidate를 이용하는 방법이다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PublicEventHandler : MonoBehaviour
{
    public int INTEGER;
    public int integer
    {
        set
        {
            integer = INTEGER;
        }
        get
        {
            return INTEGER;
        }
    }

    void OnValidate()
    {
        if(INTEGER < int.MaxValue)
        {
            Debug.Log("Hello"); // callback function
        }
    }
}

 

적절한 상황에서 INTEGER가 변경될 때 callback 함수를 호출하면 된다.

게임을 실행하고 INTEGER를 변경하면 public 변수가 변경되어도 함수가 호출되는 것을 알 수 있다.

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형

댓글