우선 팀원들과 확고하게 어떤 장르로 게임을 만들지 정했기에 계획을 세우는 부분에 있어서 굉장히 수월하게 진행됐다. Figma나 기능명세서를 이용하여 본인의 역할과 게임을 어느 방향으로 어떤 기능을 만들지 탄탄하게 세웠다. 하지만 예상과는 반대로 많은 변수들이 있었는데 이러한 것들을 통해 느낀점을 말하고자 한다. 1. 처음부터 너무 큰 틀을 잡으면 안된다 위에서 말했듯이 디펜스 게임을 목표로 설정하고 계획을 세우고 있었다. 그 중에서 디펜스를 멀티로 하면 어떨까? 아이템은 이러이러한 것들을 해서 하면 어떨까? 이러한 질문들이 마구 쏟아져 나왔다. 이를 모두 수용하고 개발을 하기도 전에 거의 다 계획에 넣었다면 변수가 생겼을 때 대처하기 어렵다. 보통 기능을 분담할 때 연관된 기능을 묶어서 배정하는데 만약 ..
TIL
프로젝트를 하다보면 Ray를 사용하는 경우가 생기는데 도대체 Ray가 어느 방향으로 어느 정도 쏴지는지 알 수 없다. 그렇기 때문에 이를 확인할 수 있는 Gizmo라는 기능을 설명하고자 한다. 1. Gizmo Gizmo란 유니티 게임화면 우측 상단에 자리잡고 있는 기능이다. 간단하게 설명하자면 기즈모 는 씬에 있는 게임 오브젝트와 연관된 그래픽스다. 2. Gizmo로 Ray확인하기 우선 OnDrawGizmos라는 기능을 사용해야 한다. 이것은 Update와 비슷하게 코드가 실행되면 알아서 실행되는 함수다. 그리고 Gizmos.DrawRay를 사용하면 Ray를 확인할 수 있는데 인자 값은 Debug.Ray와 달리 Ray값 하나만 넣어주면 된다. 그래서 간단하게 확인할 수 있다는 장점이 있다. 3. 적용 화..
프로젝트에서 애니메이션과 관련된 동작을 만들 때 Tigger, Bool, Int등 여러 값을 사용하게 된다. 이 중 트리거를 사용할 때 주의할 점을 설명하고자 한다. 주의점 Idle 상태, 즉 Base 상태에서 공격 상태로 넘어갈 때 Has Exit Time을 꺼줘야 한다. 그리고 밑에 Condition List를 추가하여 자신이 만든 트리거 값을 입력해주어야 한다. 공격에서 Idle 상태, 베이스 상태로 돌아올 때는 Has Exit Time을 켜줘야 한다. 그렇지 않으면 공격상태에서 멈추게 된다. 베이스 상태로 다시 돌아올려면 Condition 에는 아무것도 넣지 않으면 된다.
코딩에서 가장 중요하다고 말하는 것들 중 하나가 바로 디버깅이다. 하지만 디버깅이라고 해봤자 그냥 브레이크 포인트를 걸고 실행하거나 아에 디버그 자체를 안하는 경우도 다반사다. 디버깅의 실력은 곧 개발자의 실력을 나타내기 때문에 디버그 팁을 설명하고자 한다. 1. 사용법 우선 F5를 누르면 디버그 모드로 진입한다. 특정 상황에서 코드의 진행 순서를 확인하고 싶다면 브레이크 포인트를 설정하면된다. 좌측을 보면 브레이크 포인트, 빨간점이 설정돼있는 것을 볼 수 있다. 마우스로 클릭하거나, F9키로 설정할 수 있다. 이렇게 브레이크 포인트를 설정하면 저 부분 까지 코드가 모두 실행되고 그 다음부터 순서대로 진행할 수 있다. 진행하는 단축키는 F10, F11이 있다. F10은 다음 라인 이동, F11은 함수 내..
보통 유니티 파일을 깃허브에 그냥 푸쉬하게 된다면 용량이 너무 커서 올리지 못하게 된다. 그렇기 때문에 Git ignore 파일을 수정해야 하는데 이 때 어떤 방식으로 설정해야 하는지 설명하고자 한다. 1. 원본 파일 프로젝트 폴더에 있는 원본 Git ignore파일을 열면 이러한 형식으로 이루어져있다. 이대로 프로젝트를 올리게 된다면 용량이 너무 크기 때문에 불필요한 파일은 올리면 안된다. 또한 유니티로 만든 포트폴리오를 다른 사람이 볼 때 용량이 너무 크면 안되기 때문에 필수 파일만 올려야 한다. 2. 사용법 Library, Temp, Obj 들이 적혀있는 부분이 있는데 원래는 "/[Ll]ibrary/" 와 같은 형식으로 이루어져 있다. 이것을 "[Ll]ibrary/"로 바꾸어 준다면 이 경로에 있는..
Input Action 패키지를 사용하다가 적용하는 방법이 여러가지 있다는 걸 알게되었다. 적용하는 방법은 자유지만 어떤 방법이 있는지 알아두면 다른 사람과 협업할 때 도움이 될 것 같아서 소개하고자 한다. 1. Input Action이란? 입력시스템을 굉장히 편리하게 해주는 패키지다. 원래대로라면 코드 상에서 키 값을 입력받아서 진행하지만 Input Action은 미리 사용 할 키값들을 지정해놓고 함수를 연결해 사용하기 때문에 굉장히 편리하다. Action이라고하면 델리게이트가 생각날텐데 그 개념이라고 생각하면된다. Input값을 Action해주는 것이다. 2. Input Action 적용 방법 2 - 1. 함수를 직접 넣는 방법 우선 사용하고자 하는 파일에 Player Input을 추가해준다. Act..
오늘은 이번 주 팀 프로젝트를 대비해서 정리한 노션 목록을 설명하고자한다. 1. 프로젝트 기획 팀원들과 무슨 주제로 어떠한 것을 만들 것인지 회의를 한 내용을 적는 곳이다. 주로 프로젝트 명과 프로젝트 내용이 있고 이러한 내용을 정리해놓으면 프로젝트의 방향성을 나중에도 알 수 있어서 만들어놓았다. 2. 프로젝트 규칙 팀 프로젝트라면 빠질 수 없는 폴더와 깃허브 규칙이 들어가있다. 폴더 규칙을 정해놓으면 팀원 끼리 폴더 명이 뒤죽박죽 되어서 헷갈리는 일을 방지할 수 있다. 깃허브 규칙은 커밋과 브랜치/머지 규칙이 있는데 커밋과 브랜치/ 머지는 팀 협업에 있어서 굉장히 중요하다. 팀원들간의 작업목록이 분별되지 않고 그 상태에서 머지를 진행한다면 프로젝트는 결국 터지고 말 것이다. 이러한 부분에 있어서는 확실..
인벤토리와 같은 UI를 활성화 시 클릭을 해야하는 상황이 오는데 그 때 아이템을 선택함과 동시에 공격 버튼이 나간다면 참 난감할 것이다. 그래서 이러한 상황을 없애기 위한 방법을 알아보고자 한다. 1. 문제점 이 부분은 인풋액션 값이 들어오면 하이라키 창을 조건으로 걸어 인벤토리를 온/오프 하는 토글 가능인데 여기서 문제점이 있다. 1. 인벤토리가 켜질 때 마우스 포인터가 보이고 끄면 없어져야 한다. 2. 인벤토리의 아이템을 클릭 시 플레이어의 행동은 멈춰야 한다. 이러한 조건을 만족하지 못한다는 것이 큰 문제점이다. 2. 해결법 우선 UIManager에 UI의 게임오브젝트를 추가하거나 삭제하는 함수를 만든다. 예를 들어 인벤토리라는 게임오브젝트를 AddUICound 함수에 넣어 사용한다면 해쉬셋에 우선..