해결된 질문
작성
·
36
1
유저데이터로드와 유저레지스터를 이렇게 수정했는데 상관없나요?
수업에 나온 그대로 코드를 입력했는데 유닛 123도 같이 비활성화되서요ㅠㅠ
일단은 123활성화 45비활성화는 되는데 코드가 너무 달라진 것 같아서 질문드립니다.
using UnityEngine;
using UnityEngine.UI;
public class UserDataLoad : MonoBehaviour
{
[SerializeField] Text UserNickNameText;
[SerializeField] Button[] CharBtns;
int[] CharNum;
void Start()
{
CharNum = new int[5];
// 유닛 데이터 불러오기 (Unit1~Unit3 기본값 1, Unit4~Unit5 기본값 0)
for (int i = 0; i < 5; i++)
{
CharNum[i] = PlayerPrefs.GetInt("Unit" + (i + 1), (i < 3 ? 1 : 0)); // Unit1~Unit3 기본값 1, Unit4~Unit5 기본값 0
}
// 버튼 활성화 상태 설정
UpdateButtonStates();
}
void Update()
{
// 닉네임 업데이트
UserNickNameText.text = PlayerPrefs.GetString("UserNickName");
}
void UpdateButtonStates()
{
for (int i = 0; i < 5; i++)
{
CharBtns[i].interactable = (CharNum[i] == 1);
}
}
}
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class UserRegister : MonoBehaviour
{
[SerializeField] InputField NickNameInput;
string NickName;
public void OnClickRegister()
{
NickName = NickNameInput.text;
// 사용자 정보 저장
PlayerPrefs.SetString("UserNickName", NickName);
PlayerPrefs.SetInt("Coin", 1000);
PlayerPrefs.SetInt("Level", 1);
PlayerPrefs.SetInt("WinCount", 0);
// 유닛 활성화 상태 저장
PlayerPrefs.SetInt("Unit1", 1);
PlayerPrefs.SetInt("Unit2", 1);
PlayerPrefs.SetInt("Unit3", 1);
PlayerPrefs.SetInt("Unit4", 0);
PlayerPrefs.SetInt("Unit5", 0);
PlayerPrefs.Save();
// 다음 씬으로 이동
SceneManager.LoadScene("User Scene");
}
}
답변 1
0
질문 감사드립니다!
주신 코드대로 수정하셔도 정상적으로 작동이 된다면 문제가 되는 부분이 아니며 코드 가독성 면에서 더 최척화된 코드로 보입니다!
그리고 해당 기능에 대한 코드는 검토를 한 후에 문제가 있을 시 수정하도록 하겠습니다! 감사합니다!