[Unity] 유니티 Toggle UI 초기값 넣을 때 문제
안녕하세요.
처음 Toggle UI에 초기값을 스크립트를 통해 넣으려면 혼란스러운 점을 발견해서, 그거에 관련해서 넣는 방법에 대해 적으려고 합니다.
Toggle에 초기값을 에디터상에서 셋팅을 하려면 IsOn값을 변경하면 됩니다.
Is On상태에 대해 check 활성화 / 비활성화 상태가 됩니다.
스크립트에서도 마찬가지로 void Start()에서 초기값을 이런식으로 셋팅할 수 있습니다.
m_goToggle = GameObject.Find("Canvas/Toggle");
m_goToggle.GetComponent().isOn = true;
그리고 이벤트도 OnChangeToggle 함수를 연결했습니다.
public void OnChangeToggle(bool bActive)
{
m_bToggle = !m_bToggle ;
}
이렇게 연결했을 경우 토글값이 계속 변경이 되어 확인해보니,
에디터상에서 Is On 초기값과 스크립트 Start()함수에서 "m_goToggle.GetComponent().isOn = true"이 다를 경우
"m_goToggle.GetComponent().isOn = true"구문에서, OnChangeToggle 함수가 호출되는 현상이 발생했습니다.
(On 초기값과 스크립트 Start()함수에서 "m_goToggle.GetComponent().isOn = true"이 같은 경우는 OnChangeToggle가
호출되지 않습니다.)
그래서, 이렇게 구현을 해야합니다.
public void OnChangeToggle(bool bActive)
{
m_bToggle = bActive ;
}
혹시 이것도 문제가 발생한다면,
public void OnChangeToggle(bool bActive)
{
m_bToggle = m_goToggle.GetComponent().isOn;
}
이렇게 구현해보면 됩니다.