카테고리 없음

25.05.15 TIL

gaon99 2025. 5. 15. 22:08

1. 오늘 학습 키워드

 

빌드 전 필요한 작업


2. 오늘 학습 한 내용을 나만의 언어로 정리하기

 

우선 전리품에 대한 설정을 되게 많이 했다.

 

우선 전리품의 이미지가 로드가 안되는 이슈가 있었다.

 

그 이유를 살펴보니, 어드레서블 쪽 문제였던 것 같다. 하지만 이건 단편적인 문제 해결이였고 근본적인 원인은

로딩때 모든 핸들을 언로드 하는데, 이 부분이 원인이였다.

그리고 어드레서블에 이미지를 같이 안넣어줬더니 빌드시에 이미지가 로드 안되는 그런 사소한 이슈들도 많았다.

 

그래서 예외를 만들어서 예외를 제외하고 언로드 해주려고 제작했으나, HasKey를 통해 언로드가 안되게 팀원분이 방법을 알려주셔서, 

적용시켰고, 상단바에서 원래 로드를 했던 메모리 카드 전리품을 스타트에서 처음 한번 로드해주는 방식으로 변경했다.

 

이후 상단바의 크기를 줄여서 전리품의 크기도 상단바를 쓰는 모든 부분에서 작업해줬다.

 

 

그 다음에 한 일은 게임 스타트 시에 항상 초기화가 되는 문제를 아래 구문을 통해 데이터가 없을 때만 생성을 하도록 변경했다.

    if (Manager.Instance.DataManager.CharacterData != null)
    {
        return;
    }

 

 

그리고 여기서도 실수를 범했는데, Result에서 내가 플레이하는 캐릭터의 데이터가 나오지 않는 이슈가 생겼다.

 

원인은 내가 캐릭터 데이터를 어드레서블로 로드하기만 했다.

 

그래서 그 로드한 이미지를 UI Image에 넣었는데, 그 전까진 운이 좋았던건지 아님 그냥 횟수가 적어서 표본의 오류인지

정확한 이미지가 출력이 되었지만, 어제부터 결과에서 이미지가 다르게 나왔었다.

 

그래서 이 부분을 어떻게 할까 고민하다가 팀원분이 로드를 라벨 말고 이름으로 하라고 처음에 알려주셨는데,

플레이어가 선택을 하기에 내가 어떤 캐릭터를 선택할지 전혀 알 수가 없다는 것이다.

 

그래서 그럼 어떻게 해야하지 하다가 데이터 매니저에 있는 캐릭터 데이터에 접근 하면 되는거 아니냐구 알려주셔서

맹점을 깨트려주셨다.

 

그렇게 이미지의 스프라이트는 데이터 매니저에 존재하는 캐릭터의 이미지를 넣는 방식으로 변경했고,

 public void SetResult()
{
    text.text = isCleared
        ? "당신은 모든 것을 이뤄내며 빛나는 결말에 도달했습니다."
        : "이 세계에서 당신의 이야기는 끝을 맞이했습니다.";

    float zRotation = isCleared ? 0f : -90f;
    image.rectTransform.rotation = Quaternion.Euler(0, 0, zRotation);
    image.sprite = Manager.Instance.DataManager.CharacterData.Image;

    StartCoroutine(WaitForInput());
}

 

마지막으로 엔딩을 보고 나서 캐릭터의 데이터를 모두 초기화 해줘야했다.

 

이 메서드를 데이터 매니저에 작성해줘서 엔딩에서 리턴 버튼을 누를때 해당 메서드를 소환해

리셋이 되도록 했다.

public void ClearCharacterData()
{
    CharacterData = null;
    CurrentCharcterId = 2;
    _sanity = new Sanity(0, 0);
    _playerDeck.Clear();
    _booties.Clear();
    _memories.Clear();
    
    _cardDatas = new Dictionary<string, CardData>();
}

3. 학습하며 겪었던 문제점 & 에러

 

깃에서 뭐가 오류가 난건지 애니메이션도 다 날라가서, 어제 새로 다 작업을 해줬고, 오늘도 전리품 크기를 분명 1로 변경했고 프리팹도 1인데 자꾸 스케일이 1.67-- 이렇게 커지는 이슈도 있었다.  


4. 내일 학습 할 것은 무엇인지

 

WEB GL 빌드 전에 최종 오류나 부족한 부분을 채워 넣을 예정이다.