[Unity]TIL (35) | 2023.09.11 | 유니티 상점 상품목록 전환

kjg5370·2023년 9월 11일
0

TIL

목록 보기
35/91
post-thumbnail

들어가기 앞서

팀 프로젝트를 한지 2일차입니다. 저는 상점을 구현하는 부분을 맡았는데요. 상품이 많지 않아서 시작할 때 생성만 해주고
상품목록이 전환될 때에는 active 상태를 바꾸는 형식으로 목록 전환을 구현하기로 했습니다.

오늘 배운 것

  • 상품이 생성되면 버프 아이템이 있고 스킨 아이템이 있는데 이 창을 넘겨주는 기능을 만들었습니다.

이 UI들은 ShopUIManager가 만들고 관리해주는데요
ShopUIManager.cs

 public void next()
    {
        parentTransform.SetActive(true);
        StartCoroutine(ChangeList());
       
    }

    public void prev()
    {
        parentTransform.SetActive(true);
        StartCoroutine(ChangeList());
    }
    IEnumerator ChangeList()
    {
        // 애니메이션 재생 중 대기
        yield return new WaitForSeconds(0.4f);
        if (background[0].activeSelf)
        {
            labelTxt.text = "스킨 아이템";
            background[0].SetActive(false);
            background[1].SetActive(true);
        }
        else if (background[1].activeSelf)
        {
            labelTxt.text = "버프 아이템";
            background[0].SetActive(true);
            background[1].SetActive(false);
        }      
    }

ShopUIManager에서 버튼에 할당할 next와 perv를 만들고 버튼이 눌리면 옆에 있는 baseImage가 책을 넘기는 것처럼 내려오는 애니메이션이 실행되고 애니메이션이 끝날때 코루틴 함수로 현재 있는 창을 비교해 그 다음창의 텍스트와 Active를 설정해주는 식으로 만들어보았습니다.

기억 할 것 & 진행 사항

  • 코루틴
    게임 및 애플리케이션의 비동기적인 작업을 처리하는 데 사용되는 기능.
    일반적으로 시간 지연 작업, 애니메이션 제어, 반복 작업, 프레임 기반 로직, 원격 데이터 로드 등과 같은 작업을 처리할 때 유용합니다.
    코루틴은 메인 스레드에서 실행되며, 애플리케이션의 프레임률을 유지하면서 긴 작업을 분할하여 수행할 수 있습니다.
    • Unity의 프레임워크에 통합되어 있으며, 게임의 메인 스레드에서 비동기 작업을 효율적으로 처리할 수 있도록 지원합니다.
    • 예제 코드
      using UnityEngine;
      using System.Collections;
      
      public class CoroutineExample : MonoBehaviour
      {
          private void Start()
          {
              StartCoroutine(MyCoroutine());
          }
      
          private IEnumerator MyCoroutine()
          {
              Debug.Log("코루틴 시작");
              yield return new WaitForSeconds(2); // 2초 대기
              Debug.Log("2초 지남");
              yield return new WaitForSeconds(1); // 1초 대기
              Debug.Log("3초 지남");
          }
      }

진행 사항

  • 상점 UI완성
  • 패들 스킨 추가 (미완)
  • 공 스킨 추가(미완)
  • 버프 아이템 블록에 할당 (미완)

내일 할 일

  • 하루 계획
    • 오전
      • 09:00 ~ 10:00 : 알고리즘 코드카타
      • 10:00 ~ 10:30 : 팀 회의
      • 10:30 ~ 14:00 :
        • 오늘 계획 (Task)
          • 팀 프로젝트
      • 12시-1시: 점심식사
    • 집중 코딩
      • 14:00 ~ 18:00
    • 저녁
      • 6시-7시: 저녁식사
      • 19:00 ~ 20:00 : 집중 코딩 시간 부족한 부분 해결해보기
      • 20:00 ~ 21:00: TIL 작성, 마무리 회고 진행
      • 21:00 : 내일은 위한 휴식!
profile
학생입니다

0개의 댓글