728x90
토글 구현 코드 출처는 이 곳입니다.
< 준비 >
우선 UI로 버튼과
토글, 그리고 빈텍스트를 만들어 주고
다음 빈 오브젝트에
스크립트를 집어 넣습니다.
< 스크립트 >
다음은 스크립트 내용입니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ToggleCs : MonoBehaviour
{
public Text textObj; //버튼이나 토글을 눌렀을때 메세지 표시
public Button button; //기능을 할당할 버튼
public Toggle toggle; //기능을 할당할 토글
void Start()
{
SetFunction_UI();
}
private void SetFunction_UI() //기존에 있던 기능을 모두 삭제하고 버튼과 토글에 기능 할당
{
button.onClick.AddListener(Function_Button);
toggle.onValueChanged.AddListener(Function_Toggle);
}
private void Function_Button() //버튼을 눌렀을때 함수 발동
{
textObj.text = "버튼 클릭 !";
}
private void Function_Toggle(bool _bool) //토글을 눌렀을때 함수 발동, 현재 토글의 상태를 bool값으로 반환하여 사용
{
textObj.text = "토글 클릭 !"+ _bool;
}
private void ResetFunction_UI() //버튼과 토글 기능 전체 삭제
{
button.onClick.RemoveAllListeners();
toggle.onValueChanged.RemoveAllListeners();
}
}
자세한 내용은 주석에 있으나,
좀 더 구체적으로 내용을 해설해 보았습니다.
onClick.AddListener
유니티에서 UI에 동작을 할당 할 떄는 간편하게 인스펙터에서
버튼 컴포넌트에 노출되어있는 UnityEvent에 할당하는 방법이 있습니다.
쉽고 간편해서 많이 사용되지만
두가지 단점이 있다.
1. 할당된 메서드가 visual studio에서 레퍼런스 참조가 안되며
2. 미리 할당해놔야하기 때문에 동적으로 버튼의 동작을 바꿀 수 없다.
때문에 이를 해결하기 위해 Button에
onClick.AddListener(델리게이트) 형식으로 메서드를 할당한다.
토글을 구현하여
개인정보 동의를 하시겠습니까? 같은 체크표시 문항을 만들수도 있고
체크 표시를 클릭하면 어떤 UI가 보이게 한다던지
다양한 곳에 활용이 되어 쓰일수 있을 것 같습니다 !
728x90
'🧩 코딩 > 코드 메모' 카테고리의 다른 글
UNITY 텍스트 파일 StreamReader로 읽어보자 ! (0) | 2023.01.07 |
---|---|
Unity 풀링에 대해서 그리고 아주아주 간단한 풀링 코드 (4) | 2022.12.16 |
unity 배열 []과 리스트 List의 개념 (0) | 2022.12.02 |
선형 보간 / Lerp로 부드럽게 움직이기 (MoveTowards,Lerp, SmoothDamp 비교 ) (0) | 2022.11.29 |
Unity Time.timeScale로 게임 내 시간 조절하기 🤸🏻♀️ (0) | 2022.10.30 |