Unity 내배캠 TIL

Unity 게임 개발 입문(4주차5일)

오늘도즐겨 2024. 10. 15. 03:20

🔥 10/14 월요일 목표 🔥

🔎 이름 입력 시스템

🔎 캐릭터 선택 시스템

🔎 도전기능 만들기

🔎 개인 과제제출하기

🔎 개인과제 해설영상 듣기

 

09:00~ 개인 과제 진행

~13:00 개인 과제 제출

16:00~ 스탠다드반 강의

유저네임 인풋값 받아오기

 

🤯 Problem 1 🤯

  유저 네임 받아오기

🔎 처음보는 변수와 함수들에 당황 하고... 어떻게 쓰는지 찾아 보았지만 사실 잘 모르겠다 더 찾아 봐야 할것 같음.

💡  이벤트 함수에 대한 이해

[SerializeField] private TMP_InputField NameInput;

void Start()
{
    NameInput.onEndEdit.AddListener(delegate { CreateID(NameInput); });
    //InputField에는 onEndEdit onSubmit 이벤트함수가 있음 참고
}

public void CreateID()
{
    if (NameInput.text.Length < 2 || NameInput.text.Length > 10)
    {
        NameInput.text = string.Empty;
        return;
        //이름의 길이를 확인, True = 반환
    }

    PlayerPrefs.SetString("userName", NameInput.text);
    PlayerPrefs.Save();
}

 

인게임 내 유저네임 변경
이름 변경 완료! 하기

 

 

🤯 Problem 2 🤯

인게임 유저네임 변경 알고리즘 파악 못하겠음....

🔎 계속 적으로 찾아 보려고 엄청난 구글링을 함.

💡  결국 이것 저것 다 시도해보다 가장 쉬운방법을 놓친기분...

      그냥 유저네임텍스트에 인풋텍스트를 넣어주면 됨 👀 (가장 아래쪽 참고)

[Header("플레이어 이름")]
[SerializeField] private TMP_Text uesrNameText; //현재씬 네임텍스트 스페이스
[SerializeField] private TMP_InputField changeNameInput;

void Start()
{
    uesrNameText.text = PlayerPrefs.GetString("userName");
}

public void ChangeID() //이름변경하기 버튼 Onclick 에 추가할 함수
{
    if (PlayerPrefs.HasKey("userName")) // 유저네임이 등록되어있다면 True
    {
        PlayerPrefs.DeleteKey("userName"); // 기존등록된 이름 삭제하기
        changeNameInput.onEndEdit.AddListener(delegate { ChangeIDSet(); });
    }
}
public void ChangeIDSet() //스타트씬과 동일
{
    if (changeNameInput.text.Length < 2 || changeNameInput.text.Length > 10)
    {
        changeNameInput.text = string.Empty;
        return;
    }
    PlayerPrefs.SetString("userName", changeNameInput.text);
    PlayerPrefs.Save();
}

public void OffNameChangePanel() //변경완료 버튼 Onclick 에 추가할 함수
{
    NameChangePanel.SetActive(false); //패널닫기
    UesrName.SetActive(true); //패널열기
    uesrNameText.text = changeNameInput.text;
    //기존에 네임스페이스에 변경된 인풋네임넣어주기
}

 

OMG!!!!! 개인과제해설영상에서 Input을 내가 알고 있던 쉬운 방법을 쓰다니!!!!!!!!!

InputSystem은 너무 어려웡 😂

Unity기본용어와 Event함수의 정의가 잘 되어 있지 않은 나에겐 readonly 의 정의도 몰랐기에....

그냥 내가 알고 있던 방식으로 애니메이션을 빨리 진행할 껄... 이라는 후회가 남은 프로젝트 였다.

 

 

🔥 10/15 화요일 목표 🔥 

🔎 팀 프로젝트 발제 및 틀 짜기 오전 10시

🔎 객체지향 프로그래밍 특강 1회차 오후 2시

🔎 개인과제 마무리하기