GameDev/Cubidom

Cubidom Option창 만들기 - 슬라이더로 카메라 민감도 조절

SMNNMN 2026. 3. 30. 00:37

이번엔 Option창을 만들건데, 마우스 감도에 대해서만 일단 만들어 볼 것이다. 

 

UI 만들기

Slider를 두개 만들고, 각각 X민감도, Y민감도로 정한다. Back은 다시 Option창으로 되돌아 간다. 

 

코드작성하기

UIManager

    [SerializeField] GameObject optionPanel;

	public void InterruptUI(bool myBool) // 일시정지시 표시되는 UI
    {
        InterruptObject.SetActive(myBool);
        optionPanel.SetActive(false);
    }
     public void OptionUI(bool myBool)
    {
        InterruptObject.SetActive(!myBool);
        optionPanel.SetActive(myBool);
        Debug.Log("옵션");
    }
    // public void OptionBack()
    // {
    //     optionPanel.SetActive(false);
    //     InterruptObject.SetActive(true);
    // }

InterruptUI에서는 optionPanel의 비활성화를 관리해서, Option창에서 ESC를 통해 게임 플레이 화면으로 넘어간 이후 다시 ESC키를 눌러 일시정지 창으로 왔을때 Option창이 보이지 않도록 한다.

OptionUI함수는 받은 bool값에 따라 일시정지창과 옵션창을 비/활성화 하는 기능을 한다.  

 

GameManager

    public void GameOption() // 일시정지 상태에서 Option 버튼을 눌렀을 때,
    {
        UIManager.Instance.OptionUI(true);
        Debug.Log("설정창");
    }

GameOption에서는 OptionUI를 true값을 넣어 호출한다. 

Back Button의 경우 OptionUI창에 false값으로 호출하여 옵션창을 닫고, 일시정지 창을 연다.

 

슬라이더로 값 변경하기

CameraMovement

    [SerializeField] float sensitivityX;
    [SerializeField] float sensitivityY;
    
    public void SetSensitivityX(float value) => sensitivityX = value;
    public void SetSensitivityY(float value) => sensitivityY = value;

카메라의 X,Y 민감도를 조절하기 위해 람다식으로 함수를 만든다. float값을 받고, 그 값을 카메라 민감도값에 넣는다.

그리고 이 함수들을 각각의 슬라이더 값 변경에 호출되게끔 한다.

이때, Dynamic float에서 함수를 가져와야 바로 변경되는 value의 값을 가져올 수 있다.

이렇게 사용하기 위해서는 함수에 float 매개변수가 있어야 한다. 

 

민감도 조절이 잘 작동하는 것을 볼 수 있다.

'GameDev > Cubidom' 카테고리의 다른 글

Cubidom 시인성 향상2  (0) 2026.04.01
Cubidom 시인성 향상1  (0) 2026.03.31
Cubidom 일시 정지 만들기  (0) 2026.03.29
Cubidom 대포알 제거, 카메라 제어 보완  (0) 2026.03.28
Cubidom 대포 자동 에임 시스템  (0) 2026.03.27