Unity

InputField를 활용한 씬 넘기기 (간단간단)

psb08 2024. 9. 19. 17:27
728x90
반응형

진짜진짜 오랜만에 유니티 관련 글입니다.

 

InputField라는 놈을 활용해서 입력받은 글과 설정한 글이 같다면 씬을 넘겨보도록 하겠습니다.

 

아래는 목차입니다.

더보기

목차

1. InputField란?

2. InputField 활용하기

 

1. InputField란 무엇일까요

InputField는 우리가 흔히 검색하는 ㄱ글, ㄴ이버 등등에서 검색할 수 있도록 해주는 것이라고 보면 됩니다.

InputField는 게임 로그인, 이름 입력 등등에서 활용할 수 있습니다.

 

2. InputField 활용하기

 

유니티에서 씬을 두 개 만듭니다.

하나는 InputField씬 하나는 Test씬으로 해줍니다.

Building Settings에 넣어줍니다.

 

Create > UI > InputField - TextMeshPro를 선택해줍니다.

Create > UI >  InputField - TextMeshPro

그럼 생성이 됩니다.

 

그리고 위에 Button - TextMeshPro도 추가해줍니다.

 

크기를 대충 맞춰 줍니다.

Hierarchy에 Create Empty를 해주고 CheckManager 정도로 이름을 지어줍니다.

 

C# 스크립트를 하나 생성해줍니다. 이름은 InputFieldTest로 지었습니다.

 

InputFieldTest.cs

using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class InputFieldTest : MonoBehaviour
{
    public TMP_InputField inputField; // TextMeshPro InputField를 연결합니다.
    public Button checkButton; // Button을 연결합니다.
    public string targetText = "Hello"; // 비교할 텍스트 설정

    void Start()
    {
        // 버튼 클릭 시 CheckInput() 메서드 호출
        checkButton.onClick.AddListener(CheckInput);
    }

    /// <summary>
    /// 텍스트가 같은지 체크하는 메서드
    /// </summary>
    void CheckInput()
    {
        // 입력된 텍스트 가져오기
        string userInput = inputField.text;

        // 입력된 텍스트가 목표 텍스트와 같은지 비교
        if (userInput == targetText)
        {
            //맞으면 씬 넘기기
            NextScene();
        }
        else
        {
            //아니면 Debug
            Debug.Log("False: 입력된 텍스트가 목표 텍스트와 다릅니다.");
        }
    }

    /// <summary>
    /// 씬 넘기기 메서드
    /// </summary>
	 private void NextScene()
 	{
     	SceneManager.LoadScene(0);
 	}


}

여기서 주의할 점은 NextScene()에서 LoadScene(0)부분에 숫자가 TestScene의 번호이여야 한다는 점입니다.

TestScene의 번호가 0이라면 0으로 1이라면 1으로 설정해야 합니다.

TestScene에 맨 오른쪽 숫자가 씬의 순서를 나타냅니다. 이 숫자에 맞는 숫자를 넣어야 합니다.

 

이 스크립트를 아까 생성한 CheckManager에 넣어줍니다.

이렇게 세팅 합니다.

 

InputField 칸에 아까 생성한 InputField를 넣습니다.

CheckButton 칸에 아까 생성한 Button을 넣어줍니다.

TargetText 칸에는 일치하는지 확인 할 Text를 적습니다. 간단하게 Hello로 적었습니다.

 

이제 게임 내에서 InputField에 Hello를 치고 버튼을 누르면 TestScene으로 넘어가집니다.

테스트 gif

아까 설명을 안했지만 TestScene에는 간단하게 TestScene이라는 글자를 넣어놨습니다.

 

이번에는 InputField를 간단하게 사용했습니다.

조금 더 심화적으로 사용한다면 서버게임에서 초대 코드나 플레이어 이름 입력 창을

InputField를 사용해서 만들 수 있습니다.

 

다음번에는 아마 벽돌깨기를 만들지 않을까 싶습니다.