Unity_2기 내일배움캠프 TIL 96

Unity_2기 4주차 (231201)

오늘은 어제 유니티 팀 프로젝트에 이어서 작업을 했다. 내가 맡은 Item 부분은 두 명이서 진행하기 때문에 시작 전, 간단하게 업무 분담을 하고 시작했다. 팀 프로젝트 구현 내용 1. ItemSlow private void SlowItemUse() { _mainBall = GameObject.Find("BallPrefab(Clone)").GetComponent(); _originSpeed = _mainBall.ballMaxSpeed; _mainBall.SetMaxSpeed(_originSpeed / 2); StartCoroutine(OriginBallSpeed()); } IEnumerator OriginBallSpeed() { yield return new WaitForSeconds(2f); _main..

Unity_2기 4주차 (231130)

오늘은 드디어 팀 프로젝트에 대한 발제 강의가 있는 날이다. 팀 프로젝트는 주제는 추억의 게임을 선택해서 현대적인 버전으로 재현하는 것이다. 추억의 게임은 똥피하기, 닷지, 벽돌깨기가 있으며 충돌처리 구현에 중점을 두고 필수요구구현 위주루 팀 프로젝트를 진행하면 되는 것이다. 우선, 회의를 통해 벽돌깨기를 만들기로 했다. 그리고 역할 분담을 해서 오늘까지는 간단한 기능만 구현하고, 깃허버의 하나의 브랜치로 통합하는 것까지 진행하기로 했다. 또, 유니티 챌린지반의 특강이 있었고, 주제는 게임 프로그래밍에서 자주 사용되는 7개의 디자인 패턴이었다. 객체에 대한 내용인데 햇갈리는 내용이므로 정리를 했다. 팀 프로젝트 역할 분담 공의 움직임, 게인화면 구성 (Edge box Collider), 기본 게임 매니저..

Unity_2기 4주차 (231129)

오늘 유니티 스파르타 타운 만들기 (게더 클론) 개인 프로젝트를 완료해서 과제 제출을 했다. 추가적으로 선택요구사항을 몇가지 더 구현했다. 그리고 개인 과제에 대한 해설 강의가 있었다. Vector에 대한 기본 개념과 전에 강의에서 어렵다고 느꼈던 Input System에 대한 추가 강의였다. 유니티 스파르타 타운 만들기 개인 프로젝트 구현 기능 필수요구사항 캐릭터 만들기 캐릭터 이동 방 만들기 카메라 따라가기 선택요구사항 캐릭터 애니메이션 추가 이름 입력 시스템 캐릭터 선택 시스템 인게임 캐릭터 선택 인게임 이름 바꾸기 시간 표시 프로젝트 GitHub README https://github.com/JaeMinNa/SpartanTownProject GitHub - JaeMinNa/SpartanTownPr..

Unity_2기 4주차 (231128)

오늘은 유니티 개인과제 필수구현 부분을 마무리 했고, 추가 구현 부분을 몇가지 진행했다. 그리고, 유니티 챌린지반의 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; } // 왼..

Unity_2기 4주차 (231127)

오늘은 제공된 유니티 남은 강의를 모두 수강하고, 개인과제를 조금 시작했다. 그리고 객체지향 관련으로 튜터님의 특강이 있었다. 유니티 강의에서는 기본적인 내용이지만, 내가 원래 알던 방법과 다르게 진행한 경우가 조금 있어서 어려웠다. 그리고 객체지향 강의는 아주 중요한 내용으로, 면접에서도 자주 나오는 내용이라서 정리하였다. 강의 내용 월드 좌표와 로컬 좌표 https://kkln2486.tistory.com/125 월드 좌표와 로컬 좌표 월드 좌표 세상(월드)의 중심으로부터의 나의 좌표 부모가 없을 때는 월드 좌표와 로컬 좌표가 같음 transform.position : 월드 좌표를 나타냄 로컬 좌표 부모로부터의 나의 좌표 인스펙터에 보여지는 kkln2486.tistory.com 이동 https://k..

Unity_2기 4주차 (231124)

오늘은 C# 기초 과정이 끝나고 드디어 본격적인 유니티 과정으로 들어갔다. 과정이 바뀌면서 정들었던 조원들과 마무리 인사를 하고 새로운 조가 만들어졌다. 조는 내일배움캠프 수강생들의 수준을 고려해서 3단계로 나눈 후, 같은 수준의 조원들과 조가 이루어진 것 같았다. 아직 부족한 점이 많지만 가장 높은 수준으로 측정된 것 같았다. 조원들에게 피해가 가지 않도록 더 열심히 해서 잘 따라 가야할 것 같다. 간단하게 인사를 나눈 후, 조장을 정하고 간단한 조원들의 약속을 정한 뒤, 유니티 입문 강의를 들었다. 예전에 들었던 내용이지만 이번에 확실히 이해하기 위해 정리를하면서 천천히 들었다. 강의 내용 컴포넌트 가져오기 https://kkln2486.tistory.com/116 GetComponent 컴포넌트 가..

Unity_2기 4주차 (231123)

오늘은 두번째 팀 프로젝트 과제인 스파르타 던전 배틀 (Text 게임) 만들기 발표 날이다. 어제 완성을 다 했기 때문에 오늘 오전에 조원들과 발표 내용에 대해서 함께 정리했다. 그리고 두시에 있는 팀 프로젝트 발표를 시작했다. 스파르타 던전 배틀 (Text 게임) 만들기 팀 프로젝트 구현 기능 필수구현 사항 1. 게임 시작 2. 상태 보기 3. 전투 시작 선택요구 사항 1. 캐릭터 생성 2. 직업 선택 3. 스킬 4. 회피 5. 치명타, 보상 6. 레벨업 7. 회복 아이템 8. 아이템 장착 9. 몬스터 종류 추가 10. 데이터 저장 다른조와 비교해서 잘한 부분 1. json을 이용해서 데이터를 저장 / 로그인 데이터 저장 부분을 생각해보다 구현한 조가 많이 없었다. 2. 행동을 입력 받지 않고, 방향키..

Unity_2기 4주차 (231122)

오늘은 대망의 팀 프로젝트 과제 제출 날이다. 우리조는 거의 작업을 완료 하였고, 추가적으로 데이터 저장 기능을 구현 했다. 기능을 추가하고, 깃허브에 Push하면서 코드가 수정되었는지 사소한 버그들이 계속 발생해서 하루종일 버그 수정하느라 바빴다. 그리고 오늘 팀 프로젝트 해설 영상이 올라왔는데, 영상을 보면서 우리조와 다르게 구현한 점과 중요하다고 생각한 부분을 정리했다. 그리고 아슬아슬하게 작업을 완료하고, 시연영상을 찍었다. 스파르타 던전 배틀 (Text 게임) 만들기 팀 프로젝트 시연 영상 https://www.youtube.com/watch?v=q8H9MfyFrAQ 구현한 기능을 최대한 보여주기 위해서 영상을 찍어서 생각보다 영상 길이가 길었다. 발표에서는 중요한 부분 위주로 넘어가면서 재생할..

Unity_2기 4주차 (231121)

오늘은 지난주 스파르타 던전 배틀 (Text 게임) 만들기 팀 프로젝트를 마무리 작업을 했다. Text 출력 시, 순서가 안맞는 부분을 수정 했으며 추가적으로 한종류의 몬스터를 생성하는 함수를 랜덤한 몬스터 3종류가 생성하도록 수정했다. 그리고 작은 버그들을 몇가지 발견해서 수정했다. 팀 프로젝트 수정 내용 몬스터 종류 추가 기존 코드 private void ApperMonster() { Random rand = new Random(); int numberOfMob = rand.Next(1, 5); for (int i = 1; i = player.MaxExp) { player.Exp = player.Exp - player.MaxExp; player.Level++; player.MaxExp = (int)(..

Unity_2기 4주차 (231120)

오늘은 지난주 스파르타 던전 배틀 (Text 게임) 만들기 팀 프로젝트를 이어서 작업했다. 내일까지 완성을 목표로 오늘 최대한 마무리 하는 것으로 목표를 잡았다. 회의에서는 각자 작업한 내용을 공유했고, 자신이 맡은 부분을 모든 끝낸 조원은 추가로 조금씩 더 구현하기로 했다. 팀 프로젝트 추가 구현한 기능 경험치 증가와 레벨업 private void LevelController() { // 레벨업 if (player.Exp >= player.MaxExp) { player.Exp = player.Exp - player.MaxExp; player.Level++; player.MaxExp *= 1.5f; player.Health = player.MaxHealth; player.Mana = player.MaxM..