작성
·
278
·
수정됨
답변 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 이부분이 있으면 주석 처리 해주시면 됩니다!