반응형

분류 전체보기 282

[Unity] Gpt를 활용한 가변 슬라이더 만들기

개요 가변 슬라이더를 만들어야 했는데... 다 만들고 난 뒤 GPT를 사용해 리팩토링한 경험을 공유한다. 니즈 원래 위와 같은 슬라이더가 있었다. 작은 흰색 동그라미가 50 단위로 있었는데, 보상 단위마다는 흰색 큰 동그라미를 넣어주었다. 이 슬라이더를 보상 간격이 일정하게 바꿔달라고 요청이 들어왔는데, 그러면 보상 단위마다 슬라이더가 차는 비율을 조정해야했다. 구현 QuestData = 현재 퀘스트 정보를 저장하고 있는 클래스 rewardData = 포인트 리워드 정보를 가지고 있는 클래스 int rewardDatesLength = rewardDatas.Count(); int rewardStep = 0; for (int idx = 0; idx < rewardDatesLength; idx++) { if ..

게임 엔진/Unity 2023.07.19

[DirectX11] Index 버퍼 생성하기

개요 DirectX11에서 Vertex 버퍼를 생성하는 방법에 대해 서술한다. 이 내용은 DirectX11을 이용한 3D게임 프로그래밍 입문의 내용을 읽고 정리했습니다. 예제 코드 Index 버퍼를 생성하는 것은 Vertex 버퍼를 생성하는 것과 비슷하다. Index 버퍼를 서술하는 구조체를 채우고, 데이터를 지정한다. 생성한 구조체와 데이터로 Index 버퍼를 생성한다. 생성 이후에는 Index 버퍼를 파이프라인에 묶어줘야 한다. 묶는 데에는 ID3D11DeviceContext의 IASetIndexBuffer를 사용한다. Format : Index의 형식을 뜻한다. 여기서는 부호 없는 정수를 사용하므로 DXGI_FORMAT_R32_UINT를 사용한다. 이 형식은 D3D11_BUFFER_DESC::Byt..

Dx11 2023.06.20

[DirectX11] Vertex 버퍼 생성하기

개요 DirectX11에서 Vertex 버퍼를 생성하는 방법에 대해 서술한다. 이 내용은 DirectX11을 이용한 3D게임 프로그래밍 입문의 내용을 읽고 정리했습니다. Vertex 정보 사용자 지정 Vertex 형식을 만들려면 Vertex를 담을 구조체를 정의해야 한다. 구조체를 정의했다면, Vertex 구조체의 성분(필드)이 어떤 용도인지 Direct3D에게 알려주어야 한다. ID3D11InputLayout 객체를 사용한다. 이 객체는 D3D11_INPUT_ELEMENT_DESC 구조체로 이뤄진 배열을 통해 구축한다. 구조체 성분이 두 개면, D3D11_INPUT_ELEMENT_DESC 배열의 원소도 두 개여야 한다. D3D11_INPUT_ELEMENT_DESC 구조체의 성분은 다음과 같다. Sema..

Dx11 2023.06.09

[DirectX11] DirectX11초기화

개요 DirectX11을 Visual Studio에서 초기화하는 방법에 대해 서술한다. 이 내용은 DirectX11을 이용한 3D게임 프로그래밍 입문의 내용을 읽고 정리했습니다. 초기화 해줘야 하는 것들 1. ID3D11Device, ID3D11DeviceContext : D3D11CreateDevice 함수를 사용해 생성 2. 스왑 체인의 특성을 서술하는 DXGI_SWAP_CHAIN_DESC 구조체 채우기 3. IDXGIFactory를 사용해 IDXGISwapChain 인스턴스 생성 4. 스왑 체인의 백 버퍼에 대한 렌더 타겟 뷰 생성 5. 깊이/스텐실 버퍼와 여기에 연결되는 깊이/스텐실 버퍼 뷰 생성 6. 렌더 타켓 뷰와 깊이/스텐실 뷰를 DirectX3D가 사용할 수 있도록 렌더링 파이프라인의 Ou..

Dx11 2023.05.31

[백준 2564] 경비원 C++

문제 백준 2564 경비원 C++ 2564번: 경비원 첫째 줄에 블록의 가로의 길이와 세로의 길이가 차례로 주어진다. 둘째 줄에 상점의 개수가 주어진다. 블록의 가로의 길이와 세로의 길이, 상점의 개수는 모두 100이하의 자연수이다. 이어 한 줄 www.acmicpc.net 풀이 이해는 바로 했는데 구현을 어떻게 할까 고민을 많이 했던 문제 최단 경로가 맞은편인지, 시계인지, 반시계인지 다 확인을 해줘야 하는데 if 문 덕지덕지 써가면서 각 케이스마다 모두 처리해 주기는 너무 싫었다. 그래서 좌상단을 0으로 기준을 잡고 시계방향(북->동->남->서)으로 각각의 좌표를 RoundPos로 명명하고 RoundPos를 잡아주었다. 이렇게 좌표를 잡아주면 문제 예시의 RoundPos는 다음과 같다. 1번 상점 좌..

알고리즘/백준 2023.05.30

동적 라이브러리와 정적 라이브러리

개요 동적 라이브러리와 정적 라이브러리에 대해 비교한다. 라이브러리 라이브러리란, 프로그램을 만들 때 사용되는 클래스나 서브루틴들의 모임이다. 1. 정적 라이브러리(Static Library) 컴파일 타임에 소스 코드와 함께 라이브러리가 링크되는 방식이다. 일반적으로 .lib 확장자를 가지며 이 파일을 실행 바이너리에 포함한다. 라이브러리의 코드와 데이터가 실행 파일 내에 복제되기 때문에, 실행 파일의 크기가 증가한다. 실행 파일이 독립적으로 실행될 수 있으며, 실행 중에 외부 라이브러리에 대한 의존성이 없다. 코드의 재사용성이 낮아지고, 여러 프로그램에서 동일한 라이브러리를 사용하는 경우 중복된 코드가 발생할 수 있다. 컴파일 타임에 소스 코드와 함께 라이브러리가 링크되는 방식이다. 정적 라이브러리를 ..

언어/C++ 2023.05.17

[백준 4811] 알약 C++

문제 백준 4811 알약 C++ 4811번: 알약 입력은 최대 1000개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄이며, 병에 들어있는 약의 개수 N ≤ 30 가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net 풀이 Top-down 방식의 dp를 이용한다. 알약을 꺼낼 때, 경우의 수는 다음과 같다. (반 개 짜리는 h, 한 개 짜리는 w로 지칭한다.) dp[w][h]는 한 개 짜리가 w, 반 개 짜리가 h만큼 있는 경우 알약을 먹을 수 있는 가짓 수를 뜻한다. 1. w != 0, h != 0인 경우 1-1. w를 먹는다. h가 한 개 늘어나고 w는 1 줄어든다. 그 후에 dp[w-1][h+1] 만큼의 경우의 수가 생긴다. 1-2. h를 먹는다. h가 ..

알고리즘/백준 2023.05.15

[백준 2302] 극장 좌석 C++

문제 백준 2302 극장 좌석 C++ 2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1) www.acmicpc.net 풀이 처음에 dp인지 완전탐색인지 헷갈렸던 문제 최대 21억 개의 가짓 수가 있는 것 보고 dp일거 같았다. 자신의 번호와 다른 자리에 앉을 때는, 항상 그 사람과 나의 자리를 바꿔서 앉는다는 것에 초점을 두고 고민했다. 1, 2, 3 세 명을 자리에 앉힌다고 가정하자. 1과 2, 2와 3을 서로 바꿔 앉게 할 수 있다. 1, 2를 먼저 앉힐 때 1 2 또는 2 1이 가능하다. 이 때 3을 앉힐 때 1 2 뒤에 3을 앉혀 1 2 3을 만..

알고리즘/백준 2023.05.11

[Unreal] 마우스 움직임에 따라 카메라 이동시키기

개요 언리얼 엔진에서 마우스 움직임에 따라 카메라를 이동시키는 방법을 설명한다. 본문 먼저 마우스 입력 축을 만들어줘야 한다. 편집 - 프로젝트 세팅으로 들어간다. 왼쪽 입력에서 마우스 X, Y에 대한 입력 축을 만들어준다. (여기서 이름은 Turn과 LookUp으로 지정) 플레이어 컨트롤 SpringArm과 Camera 컴포넌트를 추가한다. Target Arm Length(타깃 암 길이)를 수정하면 액터와 카메라 간의 거리 조절을 할 수 있다. 타겟으로한 액터의 컨트롤러로 들어가서 LookUp(상하)에 Ptich, Turn(좌우)에 Yaw를 각각 매핑한다. 여기까지하면 카메라가 액터를 따라다니게 된다. 마우스 회전에 따라 카메라도 회전하게 하고 싶다면(FPS 방식) Spring Arm 컴포넌트로 가서 ..

[Unreal] 데디케이티드 서버 셋팅

개요 언리얼 엔진에서 데디케이티드 서버를 셋팅하는 방법을 서술한다. 소스 코드 다운로드 먼저 소스 코드를 에픽게임즈 Github에서 받아야한다. https://github.com/EpicGames/UnrealEngine GitHub와 에픽 계정을 연동하지 않은 채로 위 주소로 들어가면 404에러가 뜬다. 따라서 먼저 에픽 계정을 GitHub에 연동해야 한다. https://www.unrealengine.com/ko/ue-on-github GitHub 내 언리얼 엔진 GitHub에서 언리얼 엔진 소스 코드에 액세스하는 방법을 알아보세요 www.unrealengine.com 위 링크에서 에픽 계정으로 로그인 한다. 오른쪽 위 다운로드 옆 계정을 눌러 드롭다운 메뉴를 확인한다. 앱 및 계정 - GITHUB 연..

반응형