메뉴버튼으로 다른 버튼 숨기고 펼치기
using UnityEngine;
using UnityEngine.UI;
public class MenuButtonController : MonoBehaviour
{
public Button menuButton;
public GameObject[] buttons;
private bool isMenuOpen = false;
private void Start()
{
menuButton.onClick.AddListener(ToggleMenu);
HideButtons();
}
private void ToggleMenu()
{
isMenuOpen = !isMenuOpen;
if (isMenuOpen)
{
ShowButtons();
}
else
{
HideButtons();
}
}
private void ShowButtons()
{
foreach (GameObject button in buttons)
{
button.SetActive(true);
}
}
private void HideButtons()
{
foreach (GameObject button in buttons)
{
button.SetActive(false);
}
}
}
위의 코드는 Unity에서 작성된 C# 스크립트입니다. 해당 스크립트는 메뉴 버튼과 메뉴에 연결된 여러 개의 버튼을 관리하는 기능을 담고 있습니다.
1. ``using UnityEngine.UI;`: UI 관련 기능을 사용하기 위해 필요한 네임스페이스를 임포트합니다.
2. `public class MenuButtonController : MonoBehaviour`: `MenuButtonController` 클래스를 정의합니다. 이 클래스는 MonoBehaviour를 상속하여 Unity에서 스크립트 기능을 사용할 수 있게 합니다.
3. `public Button menuButton;`: `menuButton` 변수는 Unity UI에서 설정한 메뉴 버튼을 참조하는 공개(Button 타입) 변수입니다.
4. `public GameObject[] buttons;`: `buttons` 변수는 여러 개의 버튼을 참조하는 공개(GameObject 배열) 변수입니다.
5. `private bool isMenuOpen = false;`: `isMenuOpen` 변수는 메뉴가 열려있는지 여부를 나타내는 개인적인 불리언 변수입니다. 초기값은 false로 설정됩니다.
6. `private void Start()`: Start() 메소드는 MonoBehaviour에서 제공하는 메소드로, 스크립트가 실행되면 최초로 한 번 호출됩니다.
7. `menuButton.onClick.AddListener(ToggleMenu);`: `menuButton` 버튼에 대한 클릭 이벤트를 수신하고, 클릭 시 `ToggleMenu()` 메소드를 호출합니다.
8. `private void ToggleMenu()`: `ToggleMenu()` 메소드는 메뉴의 상태를 토글하는 기능을 가지고 있습니다. `isMenuOpen` 변수의 값을 반전시킵니다. 만약 메뉴가 열려있다면 `ShowButtons()` 메소드를 호출하고, 그렇지 않으면 `HideButtons()` 메소드를 호출합니다.
9. `private void ShowButtons()`: `ShowButtons()` 메소드는 `buttons` 배열에 있는 각 버튼을 활성화합니다. 즉, 버튼 게임 오브젝트들을 화면에 보이도록 설정합니다.
10. `private void HideButtons()`: `HideButtons()` 메소드는 `buttons` 배열에 있는 각 버튼을 비활성화합니다. 즉, 버튼 게임 오브젝트들을 화면에서 숨김 처리합니다.
위의 코드는 메뉴 버튼을 클릭하면 연결된 여러 개의 버튼이 나타나거나 사라지도록 제어하는 스크립트입니다. 버튼들은 `buttons` 배열에 저장되어 있으며, `isMenuOpen` 변수를 사용하여 현재 메뉴 상태를 추적합니다. 이를 통해 메뉴가 열려있는지 닫혀있는지를 판단하고, 해당 상태에 따라 버튼들을 표시하거나 숨김 처리합니다.
오브젝트 숨기기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HideButton : MonoBehaviour
{
private bool state;
// Use this for initialization
void Start () {
state = true;
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
print("마우스 입력");
if (state == true)
{
gameObject.SetActive(false);
print("사라짐");
state = false;
}
else
{
gameObject.SetActive(true);
print("생겨나");
state = true;
}
}
}
}
'UNITY > Unity Study' 카테고리의 다른 글
물체 사라지게 만들기 (0) | 2023.06.30 |
---|---|
유니티교과서 밤송이 기능 추가 (0) | 2023.06.28 |
이미지버튼 이미지가 안들어갈때(png파일) (0) | 2023.06.23 |
UI버튼 큐브 색 바꾸기 (0) | 2023.06.22 |
도서관 만들기 (0) | 2023.06.14 |