Unity_2기 내일배움캠프 TIL

Unity_2기 4주차 (231128)

잼잼재미 2023. 11. 28. 19:49

오늘은 유니티 개인과제 필수구현 부분을 마무리 했고, 추가 구현 부분을 몇가지 진행했다. 그리고, 유니티 챌린지반의 OT가 있었는데 간단하게 앞으로 어떤식으로 진행될 지 설명이 있었다.

 

유니티 개인 프로젝트


필수 구현


1. 캐릭터 만들기

 

 

2. 캐릭터 이동

  • Input.GetKey() 로 캐릭터 이동 구현
  • Camera.main.ScreenToWorldPoint(Input.mousePosition) 로 마우스 위치에 따라 flip.X로 캐릭터가 바라보는 방향 설정

 

 

private void Move()
    {
        // 오른쪽 이동
        if (Input.GetKey(KeyCode.D))
        {
            transform.position += new Vector3(1f, 0, 0) * Time.deltaTime * speed;
        }

        // 왼쪽 이동
        else if (Input.GetKey(KeyCode.A))
        {
            transform.position += new Vector3(-1f, 0, 0) * Time.deltaTime * speed;
        }

        // 위쪽 이동
        else if (Input.GetKey(KeyCode.W))
        {
            transform.position += new Vector3(0, 1f, 0) * Time.deltaTime * speed;
        }

        // 아래쪽 이동
        else if (Input.GetKey(KeyCode.S))
        {
            transform.position += new Vector3(0, -1f, 0) * Time.deltaTime * speed;
        }

        // 마우스 방향 바라보기
        Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        
        if(mousePos.x < transform.position.x)
        {
            sr.flipX = true;
        }
        else
        {
            sr.flipX = false;
        }
    }

 

 

3. 방 만들기

  • 타일맵으로 각각 방 제작

 

 

 

 

4. 카메라 따라가기

  • Main Camera가 캐릭터를 따라다니도록 구현

https://kkln2486.tistory.com/128

 

카메라 이동

카메라 이동 2D [SerializeField] private Transform target; // 카메라가 쫓아다닐 대상 (플레이어) [SerializeField] private float smoothTime = 0.3f; // 부드럽게 이동하는 시간 private Vector3 velocity = Vector3.zero; // 값의 변

kkln2486.tistory.com

 

 

추가 구현


1. 캐릭터 애니메이션 추가

  • 각각 캐릭터 Idle 애니메이션 추가

 

2. 이름 입력 시스템

  • InputField 로 이름 입력 시스템 구현
  • if문으로 2~10 글자 사이만 적용되도록 구현

https://kkln2486.tistory.com/134

 

캐릭터 이름 입력창 만들기 (Input Field - TextMeshPro)

using UnityEngine.UI; using TMPro; [SerializeField] TMP_Text text; [SerializeField] TMP_InputField inputField; [SerializeField] GameObject gameStartPanel; // 매개변수는 string만 사용 가능 public void PlayerNameInput() { tmpText.text = inputField.

kkln2486.tistory.com

 

 

 

 

3. 시간 표시 

  • DateTime.Now 로 현재 시간 표시

https://kkln2486.tistory.com/135

 

현재시간 (DateTime.Now)

using System; public static string GetNowTime() { return DateTime.Now.ToString(("HH : mm")); } // [yyyy : 년도] [MM: 월] [dd : 일] [HH : 시] [mm : 분] [ss : 초] [tt : 오전, 오후]

kkln2486.tistory.com

 

 

 

오늘의 회고


어제 강의를 듣고 시작했던 유니티 개인과제의 필수구현 부분을 모두 끝냈다. 필수구현부분은 모두 어렵지 않게 구현했으며, 예전에 해봤던 것들을 복습, 정리하면서 구현했다. 추가구현 부분에서는 처음해본 내용들이 많았다. 먼저, 캐릭터 이름 입력 시스템을 만들기 위해 구글링을 통해 InputField 라는 유니티 기능을 처음 알게되었다. 게임에서 없어선 안될 아주 중요한 기능이라고 생각했다. 그리고 현재 시간을 나타내는 함수도 처음 들어보고 정리를 했다. 현재 시간을 시간, 분 단위로 표시했기때문에 InvokeRepeating 함수로 1초마다 실행되도록 구현했는데 코루틴을 사용하는 경우가 많은 것 같았지만 아직 코루틴 사용이 익숙하지 않아서 사용하지 못했다. 그리고 오늘 유니티 챌린지반의 OT가 있었는데 특별한 수업은 진행하지 않았고, 앞으로 진행할 원하는 수업에 대해서 각자 이야기하는 시간을 가졌다. 많은 사람들이 난이도가 있는 심화과정 수업을 원했지만 개인적으로 나는 실력이 부족하다고 생각했기 때문에 기초적인 부분과 회사 입사에 도움이 될만한 내용의 강의를 원한다고 이야기했다. 비록 실력이 조금 부족하지만 다른 사람들의 자극을 받아서 더 노력할 수 있는 좋은 기회가 생긴 것 같다.

'Unity_2기 내일배움캠프 TIL' 카테고리의 다른 글

Unity_2기 4주차 (231130)  (1) 2023.11.30
Unity_2기 4주차 (231129)  (0) 2023.11.29
Unity_2기 4주차 (231127)  (0) 2023.11.27
Unity_2기 4주차 (231124)  (1) 2023.11.24
Unity_2기 4주차 (231123)  (1) 2023.11.23