240206 - 개인과제 4일차

유시아·2024년 2월 6일
0

개인과제

목록 보기
14/16

반갑다.
발등에 불떨어졌다.
빨리 진행하자.

개인과제

오늘 한 일
UI 엄청나게 만지기.
자 로그인 창에서 하단의 회원가입 버튼을 누르면
짜잔 팝업이 나온다.
회원가입 팝업은 회원가입 버튼을 클릭시 보이고, 팝업창에서 회원가입 완료나 취소를 눌러야만 꺼지므로 SetActive로 만져준다.
점점 하이어라키 창이 더러워져서 정리를...해야 하는데... 죄다 캔버스라 어떻게 손댈 수가 없네...


여기서 이제 유저가 사용할 ID, 이름, 비밀번호를 저장할 스크립트를 짠다
찾아본 방법중에 제일 간..단...해보이는 방법이 바로...
PlayerPrefs
얘는 데이터를 메모리 상에 저장하고, 이를 하드 드라이브에 저장한다.

여러가지 함수가 있는데 간단히 정리하면
DeleteAll() : 모든 데이터를 삭제. 이 함수를 사용할 경우 경고 메시지가 출력됨
DeleteKey(String Key) : Key와 대응하는 값을 삭제
HasKey(String Key) : Key가 존재하는지 확인
Save() : 수정된 모든 preferences를 파일에 저장

또한 PlayerPrefs은 int, float, string 타입의 데이터를 저장하도록 Set 함수를 제공
SetInt(string Key, int value) : Key 값으로 int 형 데이터를 저장
SetFloat(string Key, float value) : Key 값으로 float 형 데이터를 저장
SetString(string Key, string value) : Key 값으로 string 형 데이터를 저장

그리고 Get 함수도 제공.
GetInt(string Key) : Key 값으로 저장된 int 형 데이터를 불러옴.
GetFloat(string Key) : Key 값으로 저장된 float 형 데이터를 불러옴.
GetString(string Key) : Key 값으로 저장된 string 형 데이터를 불러옴.

어렵다 어려워,,,

using UnityEngine;
using UnityEngine.UI;

public class MembershipRegistration : MonoBehaviour
{
    public InputField IdInput;  //아이디 입력 필드
    public InputField nameInput;   // 이름 입력 필드
    public InputField passwordInput;   // 비밀번호 입력 필드
    public Button registerButton;      // 회원 가입 버튼

    private void Start()
    {
        // 회원 가입 버튼의 onClick 이벤트에 함수를 연결
        registerButton.onClick.AddListener(RegisterUser);
    }

    private void RegisterUser()
    {
        string id = IdInput.text;           //입력된 id 
        string username = nameInput.text;    // 입력된 이름
        string password = passwordInput.text;    // 입력된 비밀번호

        if (string.IsNullOrEmpty(id) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(username))
        {
            Debug.LogWarning("아이디, 이름과 비밀번호는 비어있을 수 없다.");
            return;
        }

        // id가 이미 존재하는지 확인
        if (PlayerPrefs.HasKey(id))
        {
            Debug.LogWarning("이미 사용자가 존재함.");
            return;
        }

        // PlayerPrefs를 사용하여 사용자 데이터를 저장
        PlayerPrefs.SetString(id, username);
        PlayerPrefs.SetString(id, password);
        PlayerPrefs.Save();

        Debug.Log("사용자 등록 완료: " + username);
    }
}

일단은 처음 써보는거라 ID, 이름, 비밀번호 형태 상관없이 싹 string으로 밀고 시작했다.
근데 이게 3개의 값이 매칭이 되어야 불러오는데,, 마지막에 SetString에서 좀 문제가 발생했다.
id와 비밀번호만 키:밸류값으로 설정했을때는 문제없이 작동하는데, 이름까지 끼워버리는 순간
그.. 예... 오류가 남...

하...... 오늘도 밤을 지새워야 할 것 같다...

profile
패션컴공탈출기

0개의 댓글