본문 바로가기

분류 전체보기

(52)
Unity 51일차 TIL - 팀 프로젝트 트러블 슈팅 1. 일괄 판매 후 판매 시 index out of rangeGameManager에 List를 4개를 만들어줬다.- Unit Object를 저장할 List, Unit Object를 생성할 때 부여할 Id, Unit의 Rank, Unit의 Gold처음에는 List를 Unit Object와 Unit Object를 생성할 때 부여할 Id만 만들어뒀다가, GetComponent를 사용하는 게 별로 좋지 않다고 해서 최대한 사용을 덜 하기 위해 Unit 정보의 Rank와 Gold에 대한 정보도 담을 수 있도록 추가했다. 그리고 GameManager를 매번 불러와서 Add 시켜주는 게 비효율적인 것 같아서 GameManager 내에 Add와 Remove 함수를 만들어두고 매개변수를 통해서 List에 삽입하고 제거하..
Unity 47일차 TIL - Unity InputSystem 저번에 특강을 통해서 강의에서 배웠던 InputSystem이 여러 가지 사용법 중 하나라는 것을 알게 됐다. 그래서 추가적으로 다른 사용 방법들에 대해서 정리해 보려고 한다. 1. 다이렉트 방식기존에 사용했었던 Object에 Inspecter 창에서 Player Input을 Component로 추가하지 않고서 사용할 수 있다.using UnityEngine;// using InputSystem을 사용해야 Ketboard, Mouse 등의 Class를 사용할 수 있다.using UnityEngine.InputSystem;public class PlayerInputManager : MonoBehaviour{ public float dir; Keyboard keyboard; Mouse mous..
Unity 41일차 TIL - 팀 프로젝트 2 (마무리) 생각보다 많은 기능을 구현하지는 못했지만 팀 프로젝트가 끝났다. 역시나 다른 분들과 병합하면서 Script에서 문제가 생기는 부분들이 꽤 있었던 것 같다.그래도 문제를 해결하는데에 그렇게 오랜 시간이 걸리지 않아서 별 문제는 없었다. 이번 프로젝트를 진행하면서 Update문과 FixedUpdate문의 호출 빈도? 정도를 체감할 수 있었던 것 같다. 아직 최적화를 어떻게 하는지는 잘 모르겠지만 최대한 Update 문을 사용하는걸 지양할 필요가 있을 것 같다. 추가로 중간에 기존에 Object Pool로 Car Object를 생성하고, 붙어있는 Vehicle Script에 Coroutine을 사용해서 충돌 될 때 SetActive(false)로 바꿔주고 일정 시간이 지난 후에 Reset 해야 될 변수들을 R..
Unity 36일차 TIL - 팀 프로젝트 1 (Unity MiniMap) 오늘은 팀 프로젝트를 시작하는 날이다.우리 조는 RunPizzaRun 모작으로 3D 러닝 액션 게임을 만들기로 했다. 만들 게임을 고르고 나서 간단하게 와이어 프레임을 작성하고, 크게 4가지로 분류했다. 1. 미니맵과 스폰 매니저2. 게임 매니저 (UI + 오브젝트 풀 관리 + 점수 관리 + 시간)3. Player (움직임 + 애니메이션 + 카메라 제어)4. 장애물 (움직임 + 애니메이션 + 오브젝트 풀) 이 4가지 중에서 1번째인 미니맵과 스폰 매니저를 맡게 됐다. 미니맵 만들기1. Project 창에서 Render Text를 생성해 주고 Size를 적절하게 조정해 준다.2. 미니맵용 Camera를 Hierarchy 창에서 새로 만들어준다.3. Camera의 Projection을 Orthographic..
Unity 29일차 TIL - Unity 팀 프로젝트 6 마무리 솔직히 처음 구상하는 단계에서 벽돌 깨기라는 게임이 막상 기능들을 나눠보니 생각보다 빨리 끝낼 수 있겠다는 생각을 했었다. 근데 막상 해보니까 충돌 이벤트들을 나눠서 관리하는 거나, 아이템을 적용시키는 부분, 벽돌을 파괴했을 때 어떻게 카운트 할 건지 등 크게 보면 분명 Ball, Paddle, Wall, Brick, Item 5가지의 Obejct들로 이루어지는 거라 이게 복잡하게 될까 싶었는데 오히려 Object들이 적어지니까 더 복잡해지는 것 같다. 이번 프로젝트는 그래도 초기 구상도 했고, 소통도 잘 했고, 기능들도 2 ~ 3일차 안에 거의 다 구현을 했었는데 RigidBody를 붙인 두 Object의 물리적 영향을 안 주는 방법을 찾아보는데 너무 많은 시간을 뺏겼다. 해결할 수 있는 방법을 알고 ..
Unity 28일차 TIL - Unity 팀 프로젝트 5 (RigidBody Material(Bounce)) Ball이 Paddle과 충돌될 때 법선 벡터를 이용해서 입사각 반사각을 구하는 게 아닌 Material의 Bounce 값을 이용해서 구현을 했었는데 문제가 있었다. 어느 순간  각도 변화 없이 무한 반복으로 횡 혹은 종 움직임이 있어가지고, 처음에는 왜 그런지 몰랐었는데 Debug를 찍어보니 무한 반복으로 이동하기 직전에 y 혹은 x 값이 normalized를 했을 때 기준으로 0.05 정도의 값이 나오면 충돌 이후에 y 혹은 x의 값이 0이 됐다. 정확한 이유는 모르겠지만 Collider에 충돌이 일어난 이후에 y 값과 x 값이 일정 값 이하가 되면 충돌된 이후에 방향이 0으로 변경이 되는구나 하고 생각했다. 그래서 Collider 충돌이 일어나기 직전에 값을 알면 값을 보정해서 넣어줄 수 있겠다고 ..
Unity 27일차 TIL - Unity 팀 프로젝트 4 (RigidBody 2D) 이런저런 방법들을 다 써봤지만 RigidBody가 붙어있는 두 Object의 물리적 영향을 막을 수 있는 방법을 아직은 몰라서그냥 이동만 구현하는 Paddle 쪽에 RigidBody2D를 빼고, 기존에 Velocity로 이동을 구현했던 부분을 tarnsform의 position을 변경해 주는 식으로 구현을 했다. 이렇게 해도 한 가지 문제가 아직 남아 있는데, Ball이 Paddle 끝 쪽에 충돌이 됐을 때 MouseCursor 방향으로 Vector2가 생성이 되는데 이렇게 되면 Ball이 Paddle에 끌리듯이 이동하다가 나가는 현상이 있었다. 그래서 Ball의 Position이 Paddle의 모서리에 닿는 y 값을 찾아서 그때는 Vector2로 가는 게 아니라 Collider 충돌만 받게 해 가지고 ..
Unity 26일차 TIL - Unity 팀 프로젝트 3 (RigidBody 2D) 3일을 두 Object의 RigidBody 충돌을 어떻게 제어할 수 있는지 고민하고 시도하고 고민하고 시도했던 부분을 아직 완전하게 해결은 못했지만 어느 정도 꼼수를 이용해서 구현했다. 문제였던 부분은 Ball이 내려올 때 Paddle의 옆면에 치이게 되면 Ball의 속도가 증가하게 된다.그래서 RigidBody를 둘 다 적용했지만 한 Object에는 영향을 받지 않게 설정을 해주고 싶었는데 이 부분을 아무리 찾아봐도 답이 없었다. 그래서 생각해낸 게 Ball이 충돌감지를 했을 때 그 Layer가 Paddle인 경우와 Paddle이 충돌감지를 했을 때 그 Layer가 Ball인 경우에는 Ball과 Paddle의 RigidBody2D의 Velocity를 zero로 먼저 넣어주고, 그 뒤에 원래 넣으려고 했..