인프런 커뮤니티 질문&답변

한열님의 프로필 이미지
한열

작성한 질문수

유니티 2D RPG 게임 만들기

8로그인 기능_찾기기능

MemberShip 계정 개수를 늘리고 싶어요

작성

·

278

·

수정됨

0

강의 내용대로 하면 하나의 계정은 잘 만들어져요

근데 두 번째 계정을 만들면 처음 계정이 삭제되는 듯 하네요

계정을 두 개 만들고 싶으면 어떻게 하나요?

답변 2

1

한열님의 프로필 이미지
한열
질문자

기존의 아이디와 다른 이름으로 만들었지만

해결되지 않네요(처음 만든 아이디는 삭제되고 두 번째 만든 아이디만 로그인 됨)

스크립트에 "playerprefs.delete all"도 없습니다

코드에 문제가 있는지 확인 부탁드립니다!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // UI 오브젝트 관여
using UnityEngine.SceneManagement;

//1.회원가입, 로그인, 아이디 찾기 기능 구현
//로그인 성공 -> 캐릭터 선택 창
public class StartManager : MonoBehaviour
{
    //접근제한 지정자 
    //1.public -> 외부공개
    //2.private -> 내부공개
    //3.protected -> 자식에게만 공개

    //접근제한지정자,자료형,식별자;

    [Header("MemberShip")]
    public GameObject MemberShip_UI;
    public Text M_ID_Text; //아이디를 입력하는 텍스트
    public Text M_Password_Text; //비밀번호를 입력하는 텍스트
    public Text M_Find_Text; //비밀번호를 입력하는 텍스트

    [Header("Login")]
    public GameObject Login_UI;
    public Text I_ID_Text; //아이디를 입력하는 텍스트
    public Text I_Password_Text; //비밀번호를 입력하는 텍스트
    public GameObject NotLogin_UI; //로그인 실패 UI
    public Text NotLogin_Text; //로그인 실패 원인 알림


    [Header("Find")]
    public GameObject Find_UI;
    public Text FindText;
    public GameObject Not_UI_Find;
    public Text Not_text;



    public void MebShip_Btn()
    {
        PlayerPrefs.SetString("ID", M_ID_Text.text); //아이디 입력
        PlayerPrefs.SetString("Password", M_Password_Text.text); //비밀번호 입력
        PlayerPrefs.SetString("Find", M_Find_Text.text); // 힌트 입력

        MemberShip_UI.SetActive(false); //회원가입 UI 비활성화 
        
    }

    public void Login_Btn()
    {
        //1. 아이디 불일치
       if(PlayerPrefs.GetString("ID") != I_ID_Text.text)
        {
            Login_UI.SetActive(false);
            NotLogin_UI.SetActive(true);
            NotLogin_Text.text = "아이디가 일치하지 않습니다";
     
        }


        //2. 비밀번호 불일치
        if (PlayerPrefs.GetString("Password") != I_Password_Text.text)
        {
            Login_UI.SetActive(false);
            NotLogin_UI.SetActive(true);
            NotLogin_Text.text = "비밀번호가 일치하지 않습니다";
        }


        //3. 아이디, 비밀번호 불일치
        if (PlayerPrefs.GetString ("ID") != I_ID_Text.text &&
            PlayerPrefs.GetString("Password") != I_Password_Text.text)
        {
            Login_UI.SetActive(false);
            NotLogin_UI.SetActive(true);
            NotLogin_Text.text = "아이디와 비밀번호가 일치하지 않습니다";
        }

        //4. 로그인 성공
        if (PlayerPrefs.GetString("ID") == I_ID_Text.text &&
           PlayerPrefs.GetString("Password") == I_Password_Text.text)
        {
            SceneManager.LoadScene("Select");
        }
        
        //Invoke("함수명", 시간);
        Invoke("NotLogin_Exit", 2f);
    }


    private void NotLogin_Exit()
    {
        NotLogin_UI.SetActive(false);
    }


    public void FindBtn()
    {
        Find_UI.SetActive(false);
        Not_UI_Find.SetActive(true);

        if (PlayerPrefs.GetString("Find") == FindText.text) 
        {
            Not_text.text = PlayerPrefs.GetString("ID")+ "\n" + PlayerPrefs.GetString("Password");
        }
        else
        {
            Not_text.text = "잘못된 힌트입니다";
        }

        Invoke("Not_UI_Exit", 2f);
    }

    private void Not_UI_Exit()
    {
        Not_UI_Find.SetActive(false);
    }
    

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        Debug.Log(PlayerPrefs.GetString("ID")); // Get : 내용확인
        Debug.Log(PlayerPrefs.GetString("Password"));
        Debug.Log(PlayerPrefs.GetString("Find"));
    }
}

1

코사트님의 프로필 이미지
코사트
지식공유자

해당 강사님께 요청해서 답변을 받았습니다.

 

계정을 두개 만들려면

기존에 있는 아이디와 다른 이름으로 만들어서 하면은

또 다른 데이터 값이 들어가서 계정이 2개 만들어집니다

그 기존에 playerprefs.delete all 이부분이 있으면 주석 처리 해주시면 됩니다!

한열님의 프로필 이미지
한열

작성한 질문수

질문하기