반응형

안녕하세요.

 

처음 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; 

}

 

이렇게 구현해보면 됩니다.

반응형

+ Recent posts