내일배움캠프 - TIL(Today I Learned)
-
카테고리 없음
UNITY 게임개발트랙 - 내일배움캠프 81일차 TIL
내일배움캠프 79일차 TIL 오늘은 주말동안 진행한 유저 테스트 피드백의 내용을 토대로 디버깅 및 기능 수정을 진행했다. 디버깅 및 유저 테스트 피드백 반영 원거리 무기 조준 메커니즘 개선 기존 방식 : 총 60도의 조준각, 마우스 커서가 조준각을 넘어가면 정면으로 투사체 발사 개선 후 : 조준각 90도로 상향 및 마우스 커서가 최대 조준범위를 넘어가면 최대값의 조준각으로 투사체를 발사하도록 변경, 발사되는 각도에 따라 투사체 회전 플레이어가 맵 콜라이더 사이에 끼이는 현상 개선 기존에 Raycast를 활용하여 콜라이더끼리 충돌하기 전에 충돌을 미리 감지하여 속도를 줄여서 충돌 연산이 일어나기 전에 플레이어가 지형 콜라이더를 지나가는 현상을 방지하는 방식 그대로 사용하되, 알고리즘을 더 개선했다. 기존 ..
-
카테고리 없음
UNITY 게임개발트랙 - 내일배움캠프 79일차 TIL
내일배움캠프 79일차 TIL 이번주는 주말동안 진행한 유저 테스트 피드백의 내용을 토대로 디버깅 및 기능 수정에 집중할 예정이다. 오늘은 스토리 컷씬이 너무 길고 지루하다는 의견을 해결하기 위해 컷씬을 짧은 여러개의 컷씬으로 쪼개는 작업을 진행했다. 컷쎈 제작 - Playable Director, Timeline 예전 팀 프로젝트에서 컷씬을 제작할 때 했던 것 처럼, PlayableDirector 컴포넌트와 Timeline을 활용하여 컷씬을 제작했다. 대신 하나의 컷씬을 하나의 타임라인으로 만드는 것이 아니라, 장면을 여러개의 타임라인으로 쪼개 만들어서, 추후 스킵 기능을 도입한다면 스킵 버튼이 눌렸을 때 다음 타임라인을 불러와서 재생할 수 있는 구조로 설계했다. 현재 타임라인 재생이 끝나면 배열에 있는..
-
카테고리 없음
UNITY 게임개발트랙 - 내일배움캠프 76일차 TIL
내일배움캠프 76일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 객체를 이동할 때 벡터를 정규화(Nomarlized) 하는 이유에 대해 설명해주세요. 벡터를 정규화하는 가장 큰 이유는 이동속도를 균일하게 유지하기 위해서이다. 벡터를 정규화하면 방향은 유지되고 크기가 1인 단위벡터가 되는데, 이는 우리가 객체를 벡터의 크기와 상관없이 균일한 속도로 이동하고 싶을 때 큰 도움이 된다. 그 외에도 벡터를 정규화하여 물리연산에 사용하면 크기를 고려할 필요가 없으므로 성능 향상에 긍정적인 영향을 끼친다. 월드 스페이스(World Space)와 로컬 스페이스(Local Space)의 차이에 대해 설명해주세요. 월드 스페이스는 게임이나 3D 환경의 전체적인, 절대적인 좌표 시스템..
-
카테고리 없음
UNITY 게임개발트랙 - 내일배움캠프 75일차 TIL
내일배움캠프 75일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 팀 프로젝트 - 트러블 슈팅 오늘은 곧 있을 유저 테스트를 위해 대부분 디버깅과 트러블 슈팅 위주의 작업을 진행했다. 간헐적으로 플레이어가 타일맵 사이에 끼이는 현상 https://community.gamedev.tv/t/player-gets-randomly-stuck-on-tiles/205142 해외 사이트를 참고하여 해당 문제를 해결하는 방법을 알아냈다. TilemapCollider와 함께 CompositeCollider를 사용하는 것이다. CompositeCollider를 사용하면 인접한 콜라이더들을 하나의 콜라이더로 취급하여, 기존에 콜라이더들 사이에 존재했던 작은 틈새들을 메울 수 있다. 여기서..
-
카테고리 없음
UNITY 게임개발트랙 - 내일배움캠프 74일차 TIL
내일배움캠프 74일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 오브젝트 풀링(Object Pooling)이 무엇이며, 어떻게 구현하는지 설명해주세요. 유니티에서 오브젝트를 생성하는 작업과 파괴하는 작업은 많은 리소스를 필요로 하는 무거운 작업이다. 때문에 이러한 작업을 최소화하기 위해, 오브젝트를 미리 여러개 만들어두고 필요할 때마다 꺼내서 사용하고 사용하지 않을 때 다시 넣어둠으로써 메모리를 절약하는 디자인 패턴이 바로 오브젝트 풀링이다. 유니티에서 오브젝트 풀링을 사용하는 방법은 크게 두 가지이다. 유니티에서 제공하는 오브젝트 풀 기능 사용 직접 구현 유니티에서 제공하는 오브젝트 풀을 사용하는 방법은 매우 간단하다. IObjectPool 필드를 선언하고, 필수구..