336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


- NGUI 버전 : 3.9.8 -


NGUI 토글버튼 기초


게임을 구현하다 보면, 토글 버튼이라던가 라디오버튼이 필요할 때가 있습니다.


이를 위해 NGUI에서는 UIToggle이라는 컴포넌트를 제공합니다.


이 기능에 대해 간단하게 알아보고, 다음 포스팅에서 


제어할 수 있게 구현하도록 하겠습니다.



* 포스팅에 사용되는 이미지는 유료라서 공유가 힘듭니다. 양해바랍니다.


우선 아래 그림처럼 배치를 하도록 합니다.  


ToggleA(Gray)는 빈 게임오브젝트 이며, 자식으로 버튼들이 들어갑니다.


NGUI에서 기본 뼈대 만드는 법과, Button 만드는 법은 다음을 참고하세요.


[NGUI] 스프라이트(SPRITE)


[NGUI] 버튼과 레이블




이제 ToggleA(Gray)게임 오브젝트에 


UIToggle과 UIToggleComponents를 추가합니다.


(나머지도 동일하게 추가합니다)


Box Collider넣고 Size 설정하는거 잊지 마시기 바랍니다.


그리고 아래 설명에 나온것처럼 세팅을 해 줍니다.




실제 기능은 완료가 되었습니다. 아주 간단하죠.


이제 확인을 해보고 위해서 레이블 하나를 추가하겠습니다.


[NGUI] 버튼과 레이블 참고




ToggleHandler라는 스크립트를 하나 만들고, 


다음 처럼 코딩하겠습니다. (설명은 주석으로 하겠습니다)



< ToggleHandler.cs 코드 >


using UnityEngine;
using System.Collections;

public class ToggleHandler : MonoBehaviour {

    // 어떤 버튼이 활성화 되었는지 표시하기 위함.
    public UILabel m_lblMessage;

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}

    // 토글 버튼이 바뀔 때 발생하는 이벤트
    public void OnChangeToggle()
    {
        // 현재 상태가 변한 토글버튼을 가져옵니다.
        UIToggle current = UIToggle.current;
        // 우리는 활성화 된 경우만 처리할 예정이므로,
        // 활성화 된것(value가 true)이 아닌경우(false인 경우) return합니다.
        if (current.value == false) return;
        // 확인을 위해 메시지를 뿌립니다.
        m_lblMessage.text = current.name;
    }
}



코드 작성이 완료되었으면, 


ToggleHandler.cs를 UI Root 게임 오브젝트에 넣어줍니다.




메시지를 봐야하므로, Message를 연결시켜줍니다.




마지막 단계만 남았습니다.


ToggleA(Gray)를 선택하보면, 아까 넣어둔 UIToggle이 보입니다.


거기에 보면 On Value Change라는게 보이는데, 


상태가 변하면 발생하는 이벤트 입니다.


우리가 만든 함수를 거기에 등록하도록 하겠습니다.




이제 실행을 하고 버튼을 눌러보면, 다음과 같은 결과를 볼 수 있습니다.



< 결과 >



기본 기능은 간단하지만, 


제어를 하려면 수작업이 좀 필요합니다.


다음 포스팅에는 제어하는 방법에 대해 설명하도록 하겠습니다.


궁금한 사항은 댓글달아주세요.



'게임 프로그래밍 > NGUI' 카테고리의 다른 글

[NGUI] 토글버튼(Toggle) 제어  (0) 2016.07.13
[NGUI] 버튼과 레이블  (0) 2016.06.07
[NGUI]스프라이트(SPRITE)  (0) 2016.05.26

+ Recent posts