Unity. UnityEvent ์ฌ์ฉํ๊ธฐ
๐ UnityEvent๋?
UnityEvent๋ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ฅผ Unity์์ ์ฌ์ฉํ๊ธฐ ํธํ๊ฒ ๋ง๋  ๊ฒ์ด๋ค. ๋ฐ๋ผ์ C#์๋ ์๊ณ  Unity์๋ง ์กด์ฌํ๋ค.
๐ ์ฌ์ฉ๋ฒ
public class ExampleClass : MonoBehaviour
{
    UnityEvent m_MyEvent;
    void Start()
    {
        if (m_MyEvent == null)
            m_MyEvent = new UnityEvent();
        m_MyEvent.AddListener(Ping); //UnityEvent์ ํจ์ ์ถ๊ฐ
    }
    void Update()
    {
        if (Input.anyKeyDown && m_MyEvent != null)
        {
            m_MyEvent.Invoke(); //UnityEvent ํธ์ถ
        }
    }
    void Ping()
    {
        Debug.Log("Ping");
    }
}
์ ์ฝ๋๋ ์ ๋ํฐ ๊ณต์ ๋ฌธ์์์ ๊ฐ์ ธ์ด!
์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ AddListener๋ก ์ ๋ํฐ ์ด๋ฒคํธ์ ํ์ํ ํจ์๋ฅผ ์ถ๊ฐํ  ์ ์๊ณ , Invoke๋ก ์ ๋ํฐ ์ด๋ฒคํธ๋ฅผ ์คํํ  ์ ์๋ค. ์ถ๊ฐํ ํจ์๋ฅผ ์ง์ฐ๊ณ  ์ถ๋ค๋ฉด RemoveListener๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ ๋ํฐ ์ด๋ฒคํธ์ ์ฌ๋ฌ ๊ฐ์ ๋์ผํ ํจ์๋ฅผ ์
๋ ฅํ๋ฉด, ํ๋๋ง ์ฝ๋ฐฑํ๋ค. ๊ทธ๋ฆฌ๊ณ  ๋ฑ๋กํ ํจ์๋ 4๊ฐ์ ์ธ์๊น์ง๋ง ๊ฐ์ ธ์ผ ํ๋ค.
 
      
    
๋๊ธ๋จ๊ธฐ๊ธฐ