[내일배움캠프] Unity 게임 개발 심화 - 개인과제 마무리
이번에 만든 개인과제 깃 주소 : https://github.com/gugmin/SoloProject3D GitHub - gugmin/SoloProject3D Contribute to gugmin/SoloProject3D development by creating an account on GitHub. github.com 간단한 소감 이번 개인과제는 자유주제라서 주제 선정에만 시간을 많이 쏟았다. 필수 구현사항이나 선택 구현사항 조차 주어진게 거의 없다 싶이 해서 기획을 해야 하니 머리가 많이 아프고 스트레스 받는 날이 지속됬었다. 하지만 한번 경험해 보니깐 시간 분배라던지 선택과 집중을 앞으로 조금은 더 잘할 수 있지 않을까 하는 생각이들어서 이번에도 얻어가는건 있는거 같아 다행스럽게 여겨진다.
2023.12.29
no image
[내일배움캠프] Unity 게임 개발 심화 - Material 만들기
메테리얼(Material)은 게임오브젝트를 만들다 보면 볼 수 있는 오브젝트의 재질을 의미한다. Inspector창 Mesh Renderer안의 Materials 에 Lit 이라는 파일이 들어있고 제일 하단에 보면 해당 파일이 나와있다. 메테리얼을 바꾸고 싶다면 Element 0 이라고 써있는 위치에 원하는 메테리얼 을 끌어 넣으면 된다. 유니티에서 기본제공되는 메테리얼 외의 다른 원하는 메테리얼을 추가 하고싶다면 원하는 이미지를 찾은 후 메테리얼을 만들어 주면된다. 예시) 우선 원하는 이미지를 찾은 후 사용할 수 있게 설정을 해준다. 이미지 파일을 수정한다면 꼭 Apply 버튼을 누르자. Project창을 보면 Assets 폴더가 있는데 우클릭을 누르고 Create - Material 을 클릭하면 새로..
2023.12.28
no image
[내일배움캠프] Unity 게임 개발 심화 - 상호작용 만들기
이번주는 개인 프로젝트를 진행하고 개발 장르는 자유주제이기 때문에 나는 타이쿤 이라는 장르를 만들기로 했다. https://namu.wiki/w/%ED%83%80%EC%9D%B4%EC%BF%A4 타이쿤 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권 namu.wiki 그래서 오늘은 타이쿤의 필수 요소인 상호작용에 대해 만들어 봤다. 플레이어가 Ray를 쏘고 물체가 걸리면 상호작용 Text가 나오게 만들었다. 그리고 InputAction을 이용해 해당 키를 누르고 있을때 UIBar가 줄어드는 연출을 주는 방식을 구현했다. Ray를 쏴..
2023.12.27
[내일배움캠프] Unity 게임 개발 심화 - 게임수학(회전)
회전을 주는 3가지 방법 1. 오일러각 2. 쿼터니언(사원수) 3.방향벡터 오일러각(Euler)는 x,y,z축의 각각의 호전으로 표현하는 방식이다. 2D - z축으로 회전, x, y축에서 이동 3D - x/y/z축으로 회전, x, y, z축에서 이동 문제점 : 짐벌락 - https://www.youtube.com/watch?v=yxMQKsab5TQ&t=321s 쿼터니언(Quaternion)은 w, x, y, z의 네 가지 수로 회전을 표현하는 방식이다. 게임 엔진에서는 주로 쿼터니언을 활용하여 회전하지만 매우 비직관적이기 때문에 개발자들은 오일러각을 쿼터니언으로 바꾸는 방식을 활용하고, 이러한 메소드를 제공한다. Quaternion.Identity - 회전이 없다. Quaternion.Euler - 오일..
2023.12.27
[내일배움캠프] Unity 게임 개발 심화 - SOLID원칙
SOLID 원칙은 객체 지향 프로그래밍을 설계하는데 지켜야하는 5대 원칙으로 유지 보수 가능하고 확장 가능한 소프트웨어를 만들기 위한 원칙입니다. S,O,L,I,D 각각의 글자가 의미를 가지고 있다. S: 단일 책임 원칙 (Single Responsibillity Principle) - 하나의 클래스는 하나의 책임만 가져야 한다. 각 클래스는 한 가지 목적을 위해 존재하고, 변경의 이유는 하나여야 한다. O: 개방-폐쇄 원칙 (Open-Closed Principle) - 확장에는 열려 있고, 수정에는 닫혀 있어야 합니다. 기존 코드를 변경하지 않고도 새로운 기능을 추가할 수 있도록 설계되어야 합니다. L: 리스코프 치환 원칙 (Liskov Substitution Principle) - 하위 클래스는 상위..
2023.12.22
[내일배움캠프] Unity 게임 개발 숙련 - 팀프로젝트 마무리
오늘 팀프로젝트를 제출하고 발표까지 한번에 진행되면서 게임 개발 숙련 주차의 팀 프로젝트가 마무리 되었다. 이번에는 개발 스코프를 잘 못잡아서 구현하고 싶었던 내용들이나 개발하며 중간중간 떠오르는 아이디어들을 접목시키지 못한게 매우 아쉽게 느껴진다. 하지만 개발자에게 마감을 지키는것은 정말 중요하기 때문에 팀원 전체의 개발 속도나 스타일을 미리 알지 못하고 초반설계를 꼼꼼히 하지 않는다면 좋은 개발을 할 수 없을거 같다는 점은 배워가는거 같다. 이제 최종단계인 실전프로젝트를 진행하기 앞서 한번의 팀프로젝트만이 남아 있는데 이번에는 초반에 개발 스코프를 잘 정하고 초반설계를 잘 할 수 있도록 노력해야겠다는 생각이 든다. https://www.figma.com/file/3zgO3JYyHvanFoUXzU8Bf..
2023.12.21
[내일배움캠프] Unity 게임 개발 숙련 - 팀프로젝트 발표 D - 1
이번 팀프로젝트는 시작부터 파트를 나눠서 작업을 하기 시작했는데 각자의 방식과 속도가 다르다는걸 인지하지 못하고 설계를 들어가버려서 제출 하루 전날인 오늘까지도 제작 마무리가 되지 않고 있다. 도움을 요청하거나 막히는 부분이 있다고 하실때마다 성심성의껏 도와드리고 답을 같이 찾으며 진행해왔는데 아무래도 남의 코드를 보면서 수정을 도와야 했기에 시간이 꽤 흘러 버렸다. 그래서 최종 작업하고 버그잡기 급급할 줄 알았던 이시간에도 완성이 되지 않고 발표 준비도 맞치지 못하고 있다. 예를 들어 내가 맡은 적구현 파트 같은 경우는 초반설계할때 라운드 구현을 55라운드 정도로 하자고 얘기하고 진행하다 보니 시간이 부족해서 구현할려고 했던 부분을 도려내는 일까지 벌어지고 말았다. 그리고 내 손을 거치지 않고 만들어지..
2023.12.20
no image
[내일배움캠프] Unity 게임 개발 숙련 - 랜덤타워디펜스(적 구현)
오늘은 팀원과의 회의를 통해 정해졌던 적 구현 파트를 진행했다. 주말동안 작업했던 내용을 깃허브에 올리고 팀원들과 공유를 하면서 하루를 시작했다. 우선 주말에 구현한 내용들은 적 몬스터 만들기, 적을 짜여진 동선으로 이동하게 만들기 스폰지점 생성, 임시)라운드 구현, 등이있다. 덕분에 할 일이 없어진 나는 오늘... 적 몬스터는 SO를 사용해서 데이터 관리를 해주었고 다음은 적의 이동 동선인데 적에게 콜라이더, 리지드바디를 줘서 충돌시 방향 돌려주면 된다는 생각을 가지고 있었기 때문에 코드만 짜면 되는 일이였다. 근데 생각만큼 잘 나오지 않아서 혼자 고민하다가 같이 스터디를 하는 동기들에게 도움을 구하여 해결했다. Quaternion.AngleAxis(); 라는 유니티 엔진 메서드를 이용해보라고 알려줘서..
2023.12.18
no image
[내일배움캠프] Unity 게임 개발 숙련 - 다시 시작된 팀프로젝트 (게임정하기)
이번에도 역시 팀 프로젝트가 시작됬다. 이번에 팀프로젝트에 만들게된 게임은 타워디펜스 , 2D로그라이크 , 3D 퍼즐 플랫폼, 3D 서바이벌 중 선택을 하는 거였다. 우리팀은 첫번째인 타워디펜스를 하기로 만장일치가 나와서 선택하는데 어려움없이 게임을 골랐다. 타워디펜스는 클래식한 느낌이 있는 게임도 있지만 요샌 랜덤요소가 들어간 랜덤타워디펜스로도 많이 알려져있어서 우리 조는 랜덤타워디펜스를 만들기로 했다. 컨셉을 정하는데는 이번 팀이름인 '롤이나하시조' 에서 바로 롤을 그냥 가져와서 타워 디펜스에 넣자고 의견을 내어 팀원분들이 동의를 해주고 결정되었다. 역할 분담을 하는데 있어서 일단 크게 3가지로 나뉘었는데 타워, 적, UI 구현 이렇게 3개의 큰틀로 나누고 한가지당 2명씩 들어가서 세부 조율 후 구현..
2023.12.15