전체 글 267

[유니티] 오브젝트 이동 (1)

목표 - 오브젝트가 특정 경로를 따라 이동하게 구현 - 좌표와 애니메이션을 이용해 오브젝트가 움직이며 이동하게 구현 오브젝트 이동 오브젝트가 특정 경로를 따라 이동하는 것을 구현하기 전에, 유니티에 존재하는 이동 방법들에 대해 먼저 알아보자. 우리가 어떤 오브젝트를 생성했을 때 그 오브젝트의 인스펙터창을 보게 되면 다음과 같은 Transform 컴포넌트가 항상 존재한다. 이 Transform 컴포넌트는, 유니티 공식 사이트에 따르면 Scene 속 각 Object의 Position(위치), Rotation(회전), Scale(크기)를 결정한다고 쓰여 있다. 쉽게 말해 좌표에 관한 정보를 담고 있다고 생각하면 되겠다. 따라서 이러한 위치를 프레임마다 변경한다면 우리는 마치 이 오브젝트가 이동하는 것처럼 보일..

Game/Unity 2023.01.19

[유니티] 카메라 조작 및 단축키

화면 회전 Scene에 우클릭을 유지하고 이동하면 화면이 마우스 방향을 따라 회전한다. 화면 상하좌우 이동 Scene에 우클릭을 유지하고 w(앞), s(뒤), a(좌), d(우), e(상), q(하). 이때 속도를 높이고 싶으면 Shift키도 같이 눌러준다. 카메라 2D/3D 전환 키보드 2번 카메라를 현재 Scene이 보이는 화면으로 전환 Hieararchy 창에서 Main Camera를 클릭하고, Ctrl + Shift + f (만약 물체를 현재 카메라 위치로 옮기고 싶으면, 오브젝트를 선택하고 Ctrl + Shift + f)

Game/Unity 2023.01.18

[유니티] 기초 UI

좌측에 Q,W,E,R,T,Y의 단축키를 통해 오브젝트를 이동시키거나 회전시키는 등의 기능을 사용할 수 있다. ① Scene 게임 오브젝트가 포함되는 공간. 캐릭터, 장애물, 배경 등을 배치할 수 있다. ② Console 유니티가 실행되며 생성되는 메시지를 출력하는 창. 유니티 스크립트에서 Debug 명령어를 통해 콘솔에 원하는 메시지를 표시할 수도 있다. 단축키는 Ctrl + Shift + C. ③ Game View 유니티가 실행됐을 때, 유저의 입장에서 보게되는 디스플레이. ④ Hieararchy Scene에 표시되는 게임 오브젝트를 표시하고 있는 계층 창. 여기서 Scene에 사용할 게임 오브젝트를 정렬하거나 그룹화할 수 있으며, 부모-자식 계층 구조를 사용할 수도 있다. ⑤ Project 해당 프로..

Game/Unity 2023.01.17

[로스트아크] 기초 가이드 - 전투 방식과 전투 시스템

전투 방식 로스트아크의 레이드 기준 전투 방식은 짤패턴과 기믹으로 이루어져 있습니다. 이때 기믹은 특정 상황(일반적으로 보스의 HP 줄수)에서 보스가 요구하는 특정 행동을 하는 것을 의미합니다. 이러한 기믹에 이르기까지 보스는 짤패턴(기믹이 아닌 랜덤한 공격 방식)을 플레이어에게 행합니다. 보스가 짤패턴을 하는 과정은 보스가 어글자를 탐색하고, 어글자에게 공격을 하는 2단계로 나뉘어져 있습니다. 따라서 우리는 이 사이에 딜타임을 확보할 수 있게 됩니다. 따라서 뉴비들은 기믹을 우선적으로 익히고 짤패턴을 눈에 익게 해 언제 내가 딜을 할 수 있는지 파악하는 걸 목표로 하면 됩니다. (보스) 어글자 탐색 -> 짤패턴 -> 어글자 탐색 -> ... 기믹 -> 그로기 -> 짤패턴 -> ... 일반적으로 어글자 ..

Game/LostArk 2023.01.17

[프로그래머스] 연속 부분 수열 합의 개수 C++

문제 설명 제한 사항 및 입출력 예제 알고리즘 개념 예제에서 주어진 원형 수열을 기준으로 연속 부분 수열을 구하면 다음과 같다. 따라서 이 합들을 저장할 벡터를 초기화한 후에 중복되는 값을 지워주면 해결된다. 여기서 첫 번째 문제는 연속된 합을 반복문을 이용해 하나 하나 저장하고 비교하려니 시간 초과가 걸린다. 두 번째 문제는 끝이 연결되어 끊기는 부분이 없다는 것이다. 이러한 문제를 해결하기 위해 특정 구간의 합을 구할 수 있는 구간합(Prefix sum) 개념을 이용하여 풀었다. 주어진 예제의 구간합을 표현해보면 다음과 같다. sum이 초기화되는 과정을 보면 다음과 같다. 여기서 구간합은 특정 구간의 합을 구할 수 있다고 했는데, 만약 내가 elements의 인덱스 n부터 k까지의 합을 구하고 싶다면..

[프로그래머스] 숫자 카드 나누기 C++

문제 설명 제한 사항 및 입출력 예제 알고리즘 개념 - 개념 자체는 간단하다. 두 정수 배열 중 한 배열을 골랐을 때, 그 배열의 공약수 집합들 중 남은 배열의 원소와 나누어 떨어지지 않는 최댓값 원소를 찾는 문제다. 여기서 얼마나 시간을 줄이느냐가 관건이다(즉, 알고리즘을 맞게 작성하였어도 시간 초과가 뜰 수 있다). 필자는 풀이에서 언급할 반복의 횟수를 줄이는 방식을 통해 시간 초과 문제를 해결하였다. 풀이 풀이(1) 최초의 풀이 방법 #include #include using namespace std; int getGCD(int& min, vector& a, vector& b) { bool check = true; int max = 0; for (int i = 2; i