![[Unity C#] 씬 이동 시 로딩 화면 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7AAH7%2FbtsMYqcB9i3%2FmfdZxPL5B8PAyhHxZBwY3K%2Fimg.png)
메인 화면에서 다른 씬으로 이동할 때, 게임이 멈춘 상태로 씬을 로딩하는 것보단 움직이는 로딩 화면을 보고 있는 것이 나을 것이다.이 로딩 화면 기능을 만들어보자유니티 에디터에서 준비필자가 만들 로딩 화면은 Scene 1 -> Scene 2 로 넘어갈 때, 중간에 로딩 Scene으로 넘어가는 것이 아닌 Canvas를 띄워 안보이는 뒷편에서 Scene2를 로딩하고 바로 이동하는 식으로 진행할 것이다.기본 씬 하이어라키에서인 화면에서 다른 씬으로 이동할 때, 게임이 멈춘 상태로 씬을 로딩하는 것보단 움직이는 로딩 화면을 보고 있는 것이 나을 것이다.이 로딩 화면 기능을 만들어보자유니티 에디터에서 준비필자가 만들 로딩 화면은 Scene 1 -> Scene 2 로 넘어갈 때, 중간에 로딩 Scene으로 넘어가는..
![[백준 C++] 18870 : 좌표 압축](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtZK7C%2FbtsML2jcaMs%2FK8o8CKKJtNsZTXlqO6hn7K%2Fimg.png)
https://www.acmicpc.net/problem/18870좌표 압축이란? 간단하게 말해서 존재하는 좌표 중 비교하는 자신보다 낮은 좌표의 갯수를 대신 출력하는 것이다. 입력이 2 4 1 3 이라고 하면 압축 시 1 3 0 2 가 되는 것이다.#include #include #include using namespace std;int main(){ vector list; vector solve; int N; cin >> N; for (int i = 0; i > temp; list.push_back(temp); solve.push_back(temp); } sort(solve.begin(), solve.end()); solve.erase(unique(solve.begin(), solve.end()..
![[Unreal Engine] 언리얼 엔진의 멀티 플레이 환경](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdT49D0%2FbtsMF6fywpx%2FfW2w6zptkyPF6pN7lKF8Kk%2Fimg.png)
https://zeniff.tistory.com/23 [Unreal Engine C++] Online Subsystem을 활용한 멀티플레이 구현언리얼에는 온라인 서브시스템 Steam API를 통해 만든 게임을 밸브의 스팀 플랫폼에 출시하는 것이 가능하다. 그 기능을 이용해서 멀티 기능을 만들어보자 시작하기 전 준비 Online Subsystem을 사용하zeniff.tistory.com이전에 이 글에서 Steam API를 이용해 멀티플레이 환경을 만들어보았다. 이번에는 근본적으로 접근하여 언리얼 엔진에서 어떤 식으로 멀티 환경을 관리하는지를 이해해보고 이를 정리해보고자 한다. 언리얼엔진에서의 멀티플레이 게임 프로젝트를 시작할 때 처음부터 멀티 플레이 환경을 생각하지 않고 싱글 플레이로만 가정하게 된다면 이..
![[백준 C++] 2805 : 나무 자르기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBGD3j%2FbtsMHx3EkL3%2FMvS1jzXyhwsvh2hXPC41A0%2Fimg.png)
https://www.acmicpc.net/problem/2805간단하게 생각해서 맨 위에서부터 잘라나가면 정답을 찾을 수 있지 않을까? 지만N, M의 범위가 굉장히 크기 때문에 시간 초과가 발생할 것이다. 그렇기 때문에 이분 탐색을 활용해 문제를 풀어야 한다.#include #include #include using namespace std;int N, M;vector list;int solve(){ int answer = 0; int minValue = 0; int maxValue = list[N - 1]; while (minValue midValue) sum += list[i] - midValue; } if (sum > M) { minValue = midValue + 1; ans..
![[Unreal Engine C++] 상호작용하여 Slot에 아이템을 추가하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZfDt0%2FbtsMDtN4UAI%2FjE1vi8dXz3CKHmF11DxDVk%2Fimg.png)
인터넷에 검색하면 나오는 Slot들은 모두 인벤토리를 활용한다.필자의 프로젝트에서는 인벤토리를 사용하지 않기 때문에 그 기능을 제외하고 Slot 기능을 제작해보자.아이템을 상호작용 하거나 얻게 될 시에 내 캐릭터가 장착하게 된다. 하지만, 인벤토리 기능이 없기 때문에 이를 직접 확인하고 적용해줘야 한다.아이템테이블 및 Slot 생성 일단 Slot에 장착되는 것들은 모두 아이템이기 때문에 이 정보들을 담고있는 데이터베이스가 필요하다.// ItemDataStructs.h#pragma once#include "CoreMinimal.h"#include "Engine/DataTable.h"#include "ItemDataStructs.generated.h"UENUM()enum class EItemType : ui..
![[백준 C++] 17626 : Four Squares](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAHU9w%2FbtsMyv1jyP6%2FG7x0K87iNkL2l5aNL78dP0%2Fimg.png)
https://www.acmicpc.net/problem/17626DP와 브루트포스를 사용하는 문제이다. 모든 수는 제곱수로 표현되기 때문에 접근을 다음과 같이 진행하였다.26일 경우는 1^2 + 25, 2^2 + 22 ...그렇게 수를 계산하면 남은 숫자 25, 22 등등이 생기는데, 그것은 다시 DP[25], DP[22] 등을 다시 진행하면 된다. 모든 제곱수를 수를 확인하였을 때, 가장 적은 수를 계속 저장하면서 값을 확인하면 된다.#include #include #include using namespace std;int main(){ vector list; int n; cin >> n; list = vector(n + 1, -1); for (int i = 1; i * i n을 입력받은 뒤, n보..
![[백준 C++] 2630 : 색종이 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIrCkf%2FbtsMw4gBxzt%2FG62guLUUhT5OqKUi5CGZe1%2Fimg.png)
https://www.acmicpc.net/problem/2630예시로 주어진 사진과 함께 생각해보면 2의 배수로 주어지는 N이 나눌때마다 2 / N로 계속 줄어드는 것을 볼 수 있다. 즉 첫 시작점만 정해주게 되면 줄어드는 값을 더해 끝점을 구할 수 있고, 시작점과 끝점 안에 있는 내용을 확인하여 색이 모두 일치하는지 보면 된다.#include #include using namespace std;int N;vector> board;vector answer;void solve(int sX, int sY, int size){ if (size == 0) return; bool bClear = true; int color = board[sY].at(sX); for (int y = sY; y > N; boar..
![[백준 C++] 11727 : 2×n 타일링 2](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkNuq7%2FbtsMuv0uFfb%2Ff25ItOzqGrTk4ZPlzwbKfK%2Fimg.png)
https://www.acmicpc.net/problem/11727이전 글과 마찬가지로 규칙을 찾았다. N이 1일때 1, 2일때엔 3, 3일때엔 5, 4일때엔 11..짝수일 때에는 전 수의 2배 + 1, 홀수일 때에는 전 수의 2배 - 1로 되어 이 식을 적용하였다.#include #include using namespace std;int main(){ vector list; int n; cin >> n; list.push_back(0); list.push_back(1); for (int i = 2; i
![[백준 C++] 11726 : 2×n 타일링](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfdYOU%2FbtsMtekfsGA%2Fo9jjHfgcp5f0mES24kxi30%2Fimg.png)
https://www.acmicpc.net/problem/11726규칙을 찾아내면 된다. N이 1일 때엔 방법이 한 개. N이 2일 때엔 방법이 2개, N이 3일 때엔 방법이 3개 ....좀 진행해보면 이전 두 수를 더한 값이 정답이라는 것을 알 수 있다.#include #include using namespace std;int solve(int N){ vector list = vector(1001, -1); list[1] = 1; list[2] = 2; for (int i = 3; i > N; cout
![[백준 C++] 9375 : 패션왕 신해빈](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtozRG%2FbtsMuK9WNsw%2FTPFJXTFx8CulxroI35Tk5K%2Fimg.png)
https://www.acmicpc.net/problem/9375 종류에 따라 만들 수 있는 조합의 갯수를 찾아야한다. 예를 들어 모자가 2개, 바지가 3개 있다고 했을 시 가능한 방법은(모자1, 모자2, 모자X) * (바지1, 바지2, 바지3, 바지X) 으로 조합을 만들 수 있다.다만, 모두 입지 않은 경우는 제외해야 하기 때문에 모자X와 바지X를 입은 경우를 빼 주어야 정답이 된다.#include #include using namespace std;int solve(){ map list; int value, answer = 1; cin >> value; for (int i = 0; i > name >> type; if (list.find(type) == list.end()) list.insert..