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๊ฐ์ ์ธ์๊น์ง๋ง ๊ฐ์ ธ์ผ ํ๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ