2024/10 21

내일배움캠프 34일차 TIL 유니티 3D 팀프로젝트 - Zomvid 19(1)

20241031 / Unity_6차  8주차 목요일  이번 팀프로젝트도 3중1택이 되었다. 러닝액션, 퍼즐 플랫폼, 서바이벌(전부 3D로 해야 함) 우리 조는 의기투합하여 생존 서바이벌을 하기로 했다. 아무래도 강의 내용도 서바이벌이었다 보니 다들 뭔가 더 하고 싶은 욕심이 들었던 것 같다. 나는 맵과 맵상의 자원 및 건축에 관한 역할을 받았는데,건축에 가장 시간을 써야할 것 같지만 지금 맵 만드는 것부터 익숙지 않다.  terrain에서 생성할 수 있는 tree는 성능 문제로 상호작용이 불가능하다. 그런데 나는 이 나무들을 전부 캘 수 있게 만들고 싶었다. 이 생성 패턴만 가져다 쓰기 위해 terrain tree를 상호작용 가능한 오브젝트로 바꿔치는 방법을 찾았다. public class Terrain..

카테고리 없음 2024.10.31

내일배움캠프 33일차 TIL 유니티 3D - 6

20241030 / Unity_6차  8주차 수요일   과제제출이 끝나고 플레이어의 이동에 대해서 알아보는데 Character Controller에 대해 발견하게 되었다.  이 컴포넌트는 자체적으로 Capsule Collider를 가지고 있으며,Rigid Body 가 없더라도 충돌과 같은 물리효과를 구현할 수 있다. 또한 벽에 닿았을 때 움직임에 제한이 없도록 Skin Width로 최소 이격거리 보장을 해주고Step Offset 값을 조절하여 낮은 단차를 지나갈 수 있게 해 주기도 한다. 반면에 질량, 중력, 회전운동같은 프로퍼티를 가지고 있지 않기 때문에이러한 물리효과를 직접 구현해야 한다. 사실 플레이어 캐릭터에 대해선 Rigid Body의 세세한 물리효과가 오히려 방해가 되는 경우가 많기에이걸 쓰는..

카테고리 없음 2024.10.30

내일배움캠프 30일차 TIL 유니티 3D - 3

20241025 / Unity_6차  7주차 금요일 FPS를 하다 보면 자기 캐릭터가 들고 있는 장비의 모습이 주변 환경과 상호작용하지 않는마치 다른 레이어에 그려진 듯한 느낌을 받을 때가 있다. 주변 환경과 상호작용 하지 않는 모습이 마치 UI처럼 2차원 오버레이로 그려진 건가 하면모델링을 보니 또 그런 것 같지도 않고... 오늘 그 비밀을 알았다. 생각보다 별거 없었다. 착용장비만 따로 렌더링하는 카메라를 새로 만드는 것이다. 위 사진에서 EquipCamera의 속성은 Depth Only, 빈 공간을 렌더링 하지 않고 투명하게 두겠다는 뜻이다. 거기에 Culling Mask로 장착 장비만 렌더링하면Main Camera만 있을 때와 달리 해당 오브젝트를 한 번 더 그리게 되는 것이다.(장착 장비는 관계..

카테고리 없음 2024.10.25

내일배움캠프 29일차 TIL 유니티 3D - 2

20241024 / Unity_6차  7주차 목요일  오늘은 Interface를 활용하여 상호작용 가능한 오브젝트 - 아이템을 만들어 보았다. 다음은 IInteractable 인터페이스를 ItemObject가 상속받아 구현한 코드다.public interface IInteractable{ public string GetInteractPrompt(); public void OnInteract();}public class ItemObject : MonoBehaviour, IInteractable{ public ItemData data; public string GetInteractPrompt() { string str = $"{data.displayName}\n{dat..

카테고리 없음 2024.10.24

내일배움캠프 28일차 TIL 유니티 3D - 1

20241023 / Unity_6차  7주차 수요일   유니티 3D 주차가 되었다. 3D는 매우 막막할 줄 알았으나 에셋만 준비되어 있다면 아직까지는 할만한 것 같다.    그보다 오는 토요일 코딩테스트가 예정되어있어 알고리즘을 보는데 진짜들의 Linq 사용법을 보고 정신이 멍해졌다. https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 대략 리스트에 대한 처리 알고리즘을 중점적으로 다루는 문제인데,내가 짠 코드는 다음과 같다.public int[] solution(string[] id_list,..

카테고리 없음 2024.10.23

내일배움캠프 27일차 TIL 6주차 팀프로젝트 - 벽돌깨기(완)

20241022 / Unity_6차  7주차 화요일    https://www.youtube.com/watch?v=S3lKcVkUs5k  다른 조의 프로젝트를 보니 우리 조는 꽤나 클래식하게 했다는 걸 깨달았다.주제가 고전게임의 재해석인데 재해석이 없는... 분명 처음엔 팀원들끼리 기능 구현에만 충실하자 했는데 기본적인 기능이 생각보다 빨리 생기니팀원들도 비주얼에 욕심 내는 게 눈에 보였다. 나도 막상 시연영상을 만들어 보니까 기능도 기능이지만 그림판으로 한땀한땀 그린 아이템 이미지와과제 제출 3시간 남기고 부랴부랴 추가한 배경이랑 브금이 제일 좋아 보인다.     나는 이 중에 인게임 매니저, 벽돌 및 벽돌 컨테이너, 아이템 및 아이템 컨테이너의 구현을 맡았다.  아이템은 기본적으로 블록을 깨서 나오는..

카테고리 없음 2024.10.22

내일배움캠프 26일차 TIL 6주차 팀프로젝트 - 벽돌깨기5

20241021 / Unity_6차  7주차 월요일   팀 프로젝트 발표 전날이라 마무리에 박차를 가하는 데 여념이 없었다. 1주일 짜리 프로젝트에도 슬슬 유지보수가 빡세지는 것을 보면 아직 갈길이 정~말 멀다는 것을 느낀다.  동적할당! 정말 중요하다. 정적 할당을 하면 디버그도 쉽지 않고 같은 기능을 쓰기 위해 다른 씬에 붙여넣기 해도 에러가 나기 십상이다.  솔직히 InGameManager와 InGameUI같이 좀 멀리 떨어진 오브젝트들을동적으로 참조하게 만드는 것은 쉽지 않아 보인다. 그럼에도 불구하고 오브젝트 계통도를 사전에 확실히 정해 놓고99퍼센트의 프리팹을 Initialize 함수 안에서 생성하게 하는 것이 장기적으로 정신건강에 이로울 것 같다.    프로젝트 최종 결과물은 내일 보기로 하자.

카테고리 없음 2024.10.21

내일배움캠프 25일차 TIL 6주차 팀프로젝트 - 벽돌깨기4

20241018 / Unity_6차  6주차 금요일   오늘 보스전을 만들며 이번 주차를 마무리했다. 처음 만난 코딩력 충만한 조인 만큼 이제 일 그만 만들고 마무리를 잘 지어야겠다. 물론 보스 파괴 모션까지는 욕심을 낼 거다.  보스전 전용 규칙을 만들기 위해BossSceneManager는 InGameManager를 상속받고BlockContainerForBoss는 BlockContainer를 상속받는 구조로 만들었다. 처음에는 클래스 따로 만들고 코드 복사 붙여넣기 해서 편집하는게 더 쉬워서 그렇게 했는데그래도 상속을 배웠으니 활용해 보자는 생각이 들어서 중간에 바꿨다. 부모와 자식이 완전히 같은 동작을 하는 부분은 자식 클래스에 다시 쓰지 않는 것을 기본으로public 멤버 역시 자식 클래스에 다시 ..

카테고리 없음 2024.10.18