본문 바로가기
UNITY/Unity Study

오브젝트 숨기기 + UI버튼 숨기기

by GREEN나무 2023. 6. 28.
728x90

 

 

 

 

 

 

 

 

메뉴버튼으로 다른 버튼 숨기고 펼치기

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