int 와 float는 똑같은 4byte의 크기인데 왜 표현가능한 수의 범위가 다를까? 이 문제에 대한 해답을 간략하게 설명하고자 한다. 1. int와 float의 구조 다들 알다시피 int와 float는 4byte 즉, 총 32비트로 구성되어있다. 하지만 float는 int와 달리 굉장히 큰 범위를 가지고 있다. 그러한 이유는 다음과 같다. int는 단순한 32비트 구조이기 때문에 2^-31 ~ 2^31 - 1 의 범위를 갖는다. 하지만 float는 32비트가 int처럼 단순하게 하나로 구성돼있는 것이 아닌 부호비트(1bit) * 지수(8bit) * 유효자리비트(23bit)의 32비트로 구성되어있다. 그렇기 때문에 int는 대략 42억의 수를 표현할 수 있는 반면에 float는 1.175494351 E..
전체 글
오늘 배운 경험을 회고하며 레벨 업 하는 곳입니다. 모르는 것은 배우고 아는 것은 베풀 수 있는 개발자로 성장하겠습니다!우선 팀원들과 확고하게 어떤 장르로 게임을 만들지 정했기에 계획을 세우는 부분에 있어서 굉장히 수월하게 진행됐다. Figma나 기능명세서를 이용하여 본인의 역할과 게임을 어느 방향으로 어떤 기능을 만들지 탄탄하게 세웠다. 하지만 예상과는 반대로 많은 변수들이 있었는데 이러한 것들을 통해 느낀점을 말하고자 한다. 1. 처음부터 너무 큰 틀을 잡으면 안된다 위에서 말했듯이 디펜스 게임을 목표로 설정하고 계획을 세우고 있었다. 그 중에서 디펜스를 멀티로 하면 어떨까? 아이템은 이러이러한 것들을 해서 하면 어떨까? 이러한 질문들이 마구 쏟아져 나왔다. 이를 모두 수용하고 개발을 하기도 전에 거의 다 계획에 넣었다면 변수가 생겼을 때 대처하기 어렵다. 보통 기능을 분담할 때 연관된 기능을 묶어서 배정하는데 만약 ..
프로젝트를 하다보면 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. 프로젝트 규칙 팀 프로젝트라면 빠질 수 없는 폴더와 깃허브 규칙이 들어가있다. 폴더 규칙을 정해놓으면 팀원 끼리 폴더 명이 뒤죽박죽 되어서 헷갈리는 일을 방지할 수 있다. 깃허브 규칙은 커밋과 브랜치/머지 규칙이 있는데 커밋과 브랜치/ 머지는 팀 협업에 있어서 굉장히 중요하다. 팀원들간의 작업목록이 분별되지 않고 그 상태에서 머지를 진행한다면 프로젝트는 결국 터지고 말 것이다. 이러한 부분에 있어서는 확실..