분류 전체보기 280

Git을 통한 형상관리 - (3) 스테이징

저번 포스트에서는 Git에 대한 정보를 모아놓은 메타 데이터인 config 파일에 대해 알아보았습니다.이번에는 작업을 리포지터리에 올려놓기 위한 중간단계인 스테이징에 대해 알아보겠습니다.  1) 작업 파일을 추가하기 전 git status 실행한 결과는 위와 같습니다.변경사항이 없기 때문에 아무것도 없다고 얘기하고 있습니다.이런 상황에서 파일을 생성한 후 다시 git status를 실행하겠습니다.  실행한 결과 파일이 추가되었지만 untracked 즉, 추적되지 못하고 얘기하고 있습니다.따라서 git이 파일에 대한 변경사항을 추적할 수 있게 해줘야 합니다.이를 위한 명령어는 다음과 같습니다(두 번째 명령어는 전체 파일을 대상으로 합니다).git add 파일명git add . 위의 명령어를 바탕으로 한번 ..

etc 2024.11.09

Git을 통한 형상관리 - (2) gitconfig 알아보기

https://monstrosite.tistory.com/80 Git을 통한 형상관리 - (1) 간단한 명령어형상관리 영어로는 Version Control은 작업물에 대한 여러가지 변경사항을 추적하고 저장하는 방법입니다.많은 형상관리 방법이 있지만, 일반적으로는 Git을 통해 이를 구현하는 경우가 많습니다. Gmonstrosite.tistory.com이전 포스트에서 배운 git init 명령어를 사용하면 해당 경로에 리포지터리가 생성되는 것을 확인하였습니다.그리고 생성된 .git 폴더 안에는 여러가지 파일들이 존재합니다.이번 포스트에서는 이 폴더안의 요소들 중에서 config 파일에 대해 알아보겠습니다. config 파일은 리포지터리와 관련된 정보를 담아놓은 파일입니다.여기서의 정보는 이메일이나 사용자 ..

etc 2024.11.08

스프라이트 시트

-사전요약스프라이트 시트의 Sprite Mode를 Multiple로 설정하면 스프라이트를 쪼갤 수 있습니다.스프라이트를 이상적으로 Slice하는 것은 Grid by Cell Size 옵션을 선택하고 X, Y값을 설정하는 것입니다.Slice하거나 스프라이트 시트에 변형을 가한 경우 반드시 Apply를 해주셔야 합니다.쪼갠 스프라이트의 크기가 작다면 Pixels Per Unit을 낮춰주세요, 크다면 올려주시면 됩니다.스프라이트가 뿌옇다면 Filter Mode를 Point(no Filter)로 설정하고, Compression을 None으로 설정하세요 유니티에서 2D 게임을 제작하는 경우에게임에 사용되는 많은 부분들을 하나로 모아놓은 스프라이트 시트를 주로 사용합니다.이번 포스트에서는 이런 스프라이트 시트를 사..

Git을 통한 형상관리 - (1) 간단한 명령어

형상관리 영어로는 Version Control은 작업물에 대한 여러가지 변경사항을 추적하고 저장하는 방법입니다.많은 형상관리 방법이 있지만, 일반적으로는 Git을 통해 이를 구현하는 경우가 많습니다. Git은 다음의 링크에서 다운로드 받을 수 있습니다. https://git-scm.com/ Git git-scm.com Git을 설치한 이후로는 파일 경로에서 우클릭 후 추가 옵션에서  위와 같이 보이는 것을 확인할 수 있습니다.두 가지 옵션 중에서 위의 GUI는 코드 입력보다는 버튼과 같은 그래픽 요소로 Git을 사용할 수 있습니다.아래의 Bash는 CLI로 그래픽 요소가 아닌 코드를 입력함으로서 Git을 사용할 수 있습니다. 이 포스트에서는 GUI가 아닌 Bash를 통해 명령어로서 Git을 다루는 부분에..

etc 2024.10.28

C++ 클래스와 블루 프린트의 연결

언리얼 엔진뿐만 아니라 어느 정도 규모가 있는 작업을 하게 되면 프로젝트에 사용하는 데이터의 양이 매우 많아집니다.데이터의 양이 너무 많아지고 방대해지므로 C++ 코드만으로 모든 상황을 다루기 힘들어집니다.이런 상황에서 언리얼 엔진을 사용하는 경우 C++ 클래스뿐만이 아닌 블루 프린트를 사용하는 것은 당연합니다.또한 블루 프린트를 사용할 때 얻는 이점도 있으므로 C++과 블루 프린트를 사용하는 것에 익숙해질 필요가 있습니다. 그렇다면 어떻게 C++과 블루 프린트를 연결지어 사용할 수 있을까요?이를 위해 언리얼 엔진에서는 C++ 클래스에서 특별한 지시자를 사용하게끔 설계해주었습니다. 간단하게 표로 정리해보았습니다. 1) C++ 변수를 블루 프린트에서 노출 위와 같이 블루 프린트에서 변수를 노출시키는 지시자..

커스텀 로그

프로젝트를 만들면서 로그를 통해 프로그래밍의 문제가 발생하는 부분을 파악하거나 수정점을 찾을 수 있습니다.그리고 언리얼 엔진에서는 이런 로그 기능을 사용자가 직접 커스터마이징할 수 있게 지원합니다.이번 포스트에서는 언리얼 엔진에서의 커스텀 로그를 만드는 방법을 알아보겠습니다. 1) 기본설정커스텀 로그를 사용하기 위해서는 기본적으로 설정해야 하는 요소가 존재합니다.설정 요소는 다음과 같습니다. 프로젝트명.h 에서는 다음과 같이 작성합니다.DECLARE_LOG_CATEGORY_EXTERN( CategoryName, DefaultVerbose, CompileTimeVerbose );이때 CategoryName 인자는 출력할 커스텀 로그의 이름이 되고,DefaultVerbose 인자는 런타임동안 로그로 남겨질 ..

오브젝트 풀

게임에는 컴퓨터의 리소스와 직접적인 연관이 있는 요소가 있습니다.눈을 사로잡는 화려한 이펙트나 디테일하게 다뤄지는 물리 효과, 정교하게 다듬어진 모델링이 그러합니다. 그러나 컴포터의 리소스를 직접적으로 조절하는 것은 결국 게임의 역할입니다.최적화를 얼마나 잘 수행했느냐가 바로 리소스를 조정하고 게임을 더 재미있고 역동적으로 만들기 때문입니다. 이번 포스트에서 소개해드릴 오브젝트 풀은 바로 이 최적화와 관련이 있습니다.먼저 유니티 코리아에서 제공하는 오브젝트 풀과 관련되 동영상을 링크로 올려드리겠습니다. https://www.youtube.com/watch?v=jvJ1Vd7PGwk 오브젝트 풀은 총알이나 화살처럼 단순하지만 무수히 많이 생성되는 오브젝트를 다루는데 효과적입니다.떨어지는 물이 바위에 구멍을 ..

람다식

이번 포스트에서는 C#에서의 람다식 활용법에 대해 알아보겠습니다.C++과 마찬가지로 C#에서도 람다는 일시적으로 사용되는 함수를 구현하는 경우에 사용됩니다. 그렇다면 람다식을 사용함으로써 얻는 이점을 실제 예제를 통해 알아보겠습니다. 예제에서 탐색할 대상이 되는 클래스는 위에서 보이는 Client 클래스입니다.이제 기본적으로 실행되는 클래스 Program으로 넘어가보겠습니다. 위와 같이 구성되어 있습니다.이제 총 3가지의 델리게이트에 예약될 함수를 구현하는 과정을 통해 람다 함수의 사용방법과 그 이점을 알아볼 것입니다.이때 판별할 조건은 ClientNumber가 Two이거나, ClientType이 VIP인 경우라고 가정하겠습니다. 1) 조건판별함수를 작성하는 경우 위와 같이 조건 판별함수를 작성하였습니다..

C# 2024.09.28

언리얼 향상된 입력 시스템

이번 포스트에서는 언리얼 엔진에서 기존에 사용하던 구형 입력 시스템을 대체하는언리얼 5.1부터 제공되는 향상된 입력 시스템(Enhenced Input System)에 대해 알아보겠습니다. 1) 간단한 정리향상된 입력 시스템은 언리얼 5.1부터 사용할 수 있으며 기존의 구형 입력 시스템을 대체합니다.장점으로는 사용자의 입력 설정 변경에 유연하게 대처할 수 있으며사용자의 입력을 구형 입력 시스템에서 하듯이 기존의 InputComponent를 체크하는 과정에서 전부 처리하는 것이 아닌총 4가지 단계로 세분화하고 각 설정을 독립적인 애셋으로 대체할 수 있다는 점입니다. 2) 처리 절차향상된 입력의 처리 절차는 다음과 같습니다.  3) 향상된 입력을 통해 얻는 이점그렇다면 향상된 입력을 통해서 얻는 이점은 무엇인..

언리얼 구형 입력 시스템

이번 포스트에서는 언리얼 엔진의 구형 입력 시스템에 대해 알아보겠습니다.언리얼 엔진 5.1 부터는 향상된 입력 시스템(Enhenced Input System)이 도입되었지만,그 이전의 버전에서는 구형 입력 시스템이 사용된 경우가 많기에 구형 입력 시스템도 알아두는 것이 좋습니다. 1) 구형 입력 시스템의 처리구형 입력 시스템에서 플레이어의 입력은 PlayerController를 통해 Pawn에 전달됩니다.Pawn은 나중에 관련 포스팅을 작성하겠지만,언리얼 오브젝트의 기본인 Actor에서 이동과 같은 움직임이 추가된 것이라고 생각해주시면 됩니다. 이때 들어온 입력은 PlayerController에서 처리하거나 Pawn이 처리하게끔 결정할 수 있지만,PlayerController에서는 입력외의 많은 정보를 ..