방탈출 게임을 만들때 빠질 수 없는 비번 입력기능
Unity Ui InputField를 이용해 구현해봤다.
create Empty를 하나 생성해주고 c# 스크립트를 넣어준다.
빈 오브젝트 이름은 Check로 정했다.
*스크립트 내용
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Check : MonoBehaviour
{
public static int key = 0;
public GameObject pass; // 게임오브젝트로 받기
public void check(InputField f) //InputField를 f로 선언
{
if (f.text == "3.4") //InputField에 text를 검사하여 "3.4"일때 실행
{
key = 1;
Chest.re = 1; // Chest 스크립트에 한번더 상자를 열지 못하게 만드는 변수
print("열쇠를 찾았다!");
pass.SetActive(false); // 입력받고 Ui창이 꺼짐
}
else print("틀린답");
pass.SetActive(false);
}
}
GameObject pass 에는 Canvas인 ChestPass를 넣어줬다.
Canvas가 없다면 추가한뒤 그 Canvas를 ChestPass에 넣어주면된다.
Canvas에 Panel을 추가하고 패널에 Passward라는 InputField를 넣어준다.
나는 InputField의 이름을 Passward로 정했다.
InputField밑에 Placeholder는 텍스트 입력시 사라지는 텍스트이다.
위에 사진에 비밀번호 입력이라는 텍스트가 Placeholder에 적히는 텍스트이다.
텍스트 입력은 Placeholder에 Text에 하면된다.
InputField인 Passward에 들어가면 On End Edit (String)이라는 부분에+를 눌러 추가한뒤,
아까 만들어둔 빈 오브젝트Check를 넣어준다.
빈 프로젝트를 넣으면 No Function부분을 클릭한뒤 스크립트 이름을 찾은뒤,
자신이 작성한 함수명을 클릭한다.
내 함수명은 check였기에 추가를 하였다.
그러면 아래부분에 None이 뜰텐데 그부분에 우리가 만들어둔 InputField를 넣어주자.
내가 만든 InputField의 이름을 Passward로 정했기에 Passward를 넣었다.
이렇게 만들면 잘 작동하는 걸 볼 수 있다.
본 게임에서도 잘 작동한다.
'취미 > 게임 개발' 카테고리의 다른 글
[Unity] 게임 개발 - 클릭 이벤트 만들기 (0) | 2021.12.09 |
---|---|
Unity 2D 로그라이크 게임만들기(적 Ai) #3 (1) | 2021.08.28 |
Unity 2D 로그라이크 게임만들기(적과 바닥) #2 (0) | 2021.08.27 |
Visual studio에서 Unity 자동완성이 안될때 (1) | 2021.08.27 |
Unity 2D 로그라이크 게임만들기(플레이어 생성) #1 (0) | 2021.08.26 |