Unity 내일배움캠프 TIL 0809 | UI 디자인 | 게임 배경 스토리 추가 | 회고

cheeseonrose·2023년 8월 9일
0

Unity 내일배움캠프

목록 보기
3/89
post-thumbnail

오늘은 팀 프로젝트 쭉 진행하다가 7시에 특강이 있었다.

특강

DT : Digital transformation

  • 정보통신 기술을 활용하여 기존 전통적 구조에서 디지털 구조로 변환하는 과정
  • 대표적 예시
    • 웨비나(Web + Seminar)
    • 메타버스
    • 스타벅스 e프리퀀시, 사이렌 오더

개발자의 장단점

  • 장점

    1. 수요
    2. 기술적 전문성
    3. 전세계적 커뮤니티 - 문제 발생시 해결이 쉬움
    4. 산업 선도
    5. 급여
  • 단점 (근데 이제 챗GPT가 말해준)

    1. 지루하고 반복적인 작업
    2. 스트레스와 압박
    3. 컴퓨터 작업으로 인한 건강 문제

    옴닉 너따위가 멀 알아.
    개발자 안 해도 이미 내 생패는 박살났어.

그 뒤로는 아무튼 개발자 굉장히 좋은 직업이죠? 그쵸? 이런 내용
네 맞읍니다

팀 프로젝트

stage 선택 패널 다듬기

  • 어제 하던 것에 이어서 StartScene의 stage 선택 패널 부분을 다듬었다.

    • 가운데 고양이를 클릭하면 스테이지 패널이 등장하도록 구현

    • 잠금 해제된 스테이지와 해제되지 않은 스테이지가 구분 가능하도록 UI 추가

    • stageSelectManager에서는 처음에 PlayerPrefs에 해제된 스테이지 정보가 없으면 1로, 있으면 그 값에 1을 더해서 SSM.stage 값을 설정해주었다.
      1을 더하는 이유는 PlayerPrefs에 저장된 값은 마지막으로 해제된 스테이지 정보이기 때문에, SSM.stage에는 해결할 다음 스테이지 정보가 필요하므로 1을 더하는 것

      void Start()
        {
            // 스테이지 값은 항상 최종 클리어한 스테이지의 다음 스테이지로 설정 (1스테이지 해제했으면 2스테이지)
            if (PlayerPrefs.HasKey(LOCKED_STAGE)) {
                SSM.stage = PlayerPrefs.GetInt(LOCKED_STAGE) + 1;
            } else {
                SSM.stage = 1;
            }
        }
    • startBtn 스크립트에서는 PlayerPrefs에 저장된 값이 없으면 세팅해주고, 있으면 값에 따라 스테이지 버튼을 활성화/비활성화 해주었다.

      void Start()
       {
           if (!PlayerPrefs.HasKey(LOCKED_STAGE))
           {
               PlayerPrefs.SetInt(LOCKED_STAGE, 0);
           }  
           Debug.Log("This is StartBtn " + PlayerPrefs.GetInt(LOCKED_STAGE));
       }
      
       // Update is called once per frame
       void Update()
       {
           if (PlayerPrefs.GetInt(LOCKED_STAGE) == 1)  // stage 1 클리어하면 stage2 버튼 활성화
           {
               stage2Btn.GetComponent<Button>().interactable = true;
               lock_img.SetActive(false);
           } else
           {
               stage2Btn.GetComponent<Button>().interactable = false;
               lock_img.SetActive(true);
           }
       }
    • 그리고 고양이에 stageCatBtn 스크립트를 만들어서 연결해주었다.
      처음에는 PlayerPrefs 값에 따라 고양이 모양을 변경해주고, 이후에는 stageSelectManager에서 선택된 스테이지 값을 가져와서 설정해주었다.

      void Start()
      {
          // 처음 게임 시작이거나 stage 1을 클리어 못했을 때
          if (!PlayerPrefs.HasKey(LOCKED_STAGE) || PlayerPrefs.GetInt(LOCKED_STAGE) == 0) {
              stageCatBtnImage.sprite = pixelcat;
              selectedStageText.text = "STAGE 1";
          } else {	// stage 1 클리어 했을 때 stage2
              stageCatBtnImage.sprite = pixelcat_with_sunglasses;
              selectedStageText.text = "STAGE 2";
          }
      }
      
      void Update()
      {
          // 초기화 이후에는 홈 화면에서 stage 버튼 클릭하는 거에 따라 고양이 이미지와 텍스트가 달라져야 함
          // 그래서 PlayerPrefs 말고 stageSelectManager로부터 정보 가져오기
          if (stageSelectManager.SSM.getStage() == 1) {
              stageCatBtnImage.sprite = pixelcat;
              selectedStageText.text = "STAGE 1";
          } else {
              stageCatBtnImage.sprite = pixelcat_with_sunglasses;
              selectedStageText.text = "STAGE 2";
          }
      }

      그렇게 탄생한 갅지작살 stage2 애옹씨


추가 기능 구현 - 게임 배경 스토리 추가

  • 홈 화면에서 게임 배경 스토리를 볼 수 있도록 버튼과 패널을 추가했다.

    • 대충 내용은 카드 게임을 하던 조원들이 게임에 갇혀버렸다는..
    • 로직은 딱히 기록할게 없어서 생략
      그냥 버튼 만들고 onClick에 스토리 패널 활성화시키는 로직 넣어줌
      그 결과는 짜잔


추가 기능 구현 - 홈 화면 버튼 추가

  • 게임 도중에 홈 화면으로 돌아갈 수 있도록 게임씬에 홈 화면 버튼을 추가했다.
    이것도 그냥 버튼만 만들고 스타트 씬 로드해주는게 끝이라 코드 생략!!!


오늘 한 것들 회고

  • 협업의 힘은 굉장하다! 솔직히 혼자 했으면 빈둥거리면서 하느라 거의 한 달을 (사실 그 이상을) 이거 하나에 매달렸을 것 같은데 3일컷 실화입니까
    심지어 첫 날에는 내 유니티가 말썽이라 프로젝트가 안 열려서 저녁 먹고 나서야 시작했으니,, 사실상 이틀컷임
    좋은 팀원 분들을 만나서 운이 참 좋았다!!! 나중에 팀플 때문에 머리털 빠질 것 같은 순간이 온다면 분명 지금이 그리울 것 같음

  • 팀원 한 분이 기능 구현에서 어려움을 겪으셨는데, 내가 짠 로직이랑 관련있는 부분이라 거기서 막히셨던 것 같다. 더 자세하게 설명해드릴걸!!!!!!!!!!!! ;ㅅ;
    다른 사람 코드의 흐름을 읽는 건 아무래도 어려운 일이니까.. 내가 주석을 더 자세하게 달고 설명드렸어야 했는데 그러지 못했던 것 같다 힝
    이렇게 또 팀플할 때의 소통하는 방법을 배워가고~~

  • 다른 분들 추가 구현하고 마무리하는 동안 피피티를 죅금 만들어놨다. 아무래도 피피티도 귀여워야 하니까. 귀여움 놓칠 수 없숴요.

  • 마참내 기능 구현을 다 끝내고 테스트까지 완료했다! 기억력 구려서 게임 테스트하는게 제일 어려웠던 나, 꽤나 몽총해요
    다시는 기억력 게임을 만들지 않으리. (아님)
    6x6은 진심 60초 안에 절대 못 깬다 진짜 깨는 사람 있으면 아무튼 존경함
    그래서 난 180초로 바꿔서 테스트했지롱 ㅋㅎ

  • 이제 빌드만 하면 돼서 TIL 쓰면서 기다리는 중이다
    근데 유니티 이놈이 님 keystore 비번 없으셈! 님 SDK 없으셈! 자꾸 이래서 퇴근 늦어지는 중
    가만안둬 유니티.
    아니 근데 SDK 설치 다시 해줬는데 왜 안 되냐고
    퇴근하고 싶으니까 타겟 API 바꿀게요. 몰라.... 어떻게든 되겠지...(후비적

왜 안돼ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

일다 ㄴ 퇴근...................

0개의 댓글