분류 전체보기 49

[C++] 오류 : E0146) 이니셜라이저 값이 너무 많습니다.

#include using namespace std;int func2(int arr[], int N) { for (int i = 0; i  -> func2({1, 52, 48}, 3); 부분에서 오류 발생  이유: C++ 에서는 배열을 함수의 매개변수로 전달할 때 배열을 직접 초기화할 수 없다. 대신 배열을 매개변수로 전달하기 전, 미리 선언하고 초기화한 다음, 그 배열을 함수에 전달해야 한다.   #include using namespace std;int func2(int arr[], int N){ for (int i = 0; i

언어/C++ 2024.07.15

언리얼 이동 시 밀림 현상 해결 (sphere trace for objects)

https://www.reddit.com/r/unrealengine/comments/y48od4/help_with_sphere_trace_location/ From the unrealengine community on RedditExplore this post and more from the unrealengine communitywww.reddit.com여기 글을 참고해서 오류 해결했다. get actor forward vector를 이용해서 스페어 트레이스가 내가 원하는 위치로 가게 해주었고. 플레이어와 물체 간의 거리가 너무 가까운 상태에서 스페어 트레이스가 적용되면 항상 튕기거나 밀리는 현상이 생겨서 거리가 가깝지 않도록 해주어야 겠다고 생각했다.

Unreal 2024.02.19

[Unreal Engine 5] 12. 액터 스폰(spawn)하기

이번에는 게임을 플레이하는 동안 씬에 액터와 오브젝트를 만들도록 하겠다. 스페이스 바를 누르면 만든 새 발사체에 임펄스를 추가해 씬과 게임을 더 역동적으로 만들 것이다. 스포닝(spawning)이란? 플레이 중 오브젝트를 만드는 것 보통 게임에서 총을 쏠 때 발사체를 만드는데 이를 스폰이라고 하며, 플레이하는 중에도 레벨 안에 액터를 스폰할 수 있다. 발사체 중 하나를 레퍼런스로 사용해 발사체가 어디에서 스폰될 지 알아내도록 하겠다. 레벨 블루프린트를 확인해보면 다음과 같은데, Add Impulse에서 스페이스 바 이벤트 연결을 먼저 끊고 spawn actor from class 를 클릭해준다. 여기서 노드가 어떻게 작동할 지 지시하려면 몇 가지 속성을 건드려줘야 한다. 먼저 인스턴스를 만들 블루프린트 ..

Unreal 2024.02.12

[Unreal Engine 5] 11. 블루프린트 클래스와 인스턴스

해당 구체를 단일 오브젝트에서 여러 오브젝트의 블루프린트 클래스로 바꾸려면 어떻게 해야할까? 디테일 패널에 작은 블루프린트 버튼으로 간다. 버튼을 클릭하면 이 액터를 script behavior를 가질 수 있는 재사용한 블루프린트 클래스로 변환한다는 메시지를 확인할 수 있다. create child bluprint class클릭하면 이 서브클래스를 이용할 수 있다. 블루프린트 클래스를 만들 때는 접두어로 BP를 대문자로 쓰고 언더스코어를 붙여 이 오브젝트가 블루프린트 클래스임을 바로 알 수 있게 한다. select를 선택하면 만들어지고 다음과 같이 블루프린트 클래스 자체의 새 에디터가 열린다. 레벨 블루프린트와 비슷하지만 몇 가지 다른 사항들이 있다. 여기서는 오브젝트 인스턴스를 만들 때, 이 블루프린트..

Unreal 2024.02.11

[C++] string 헤더파일을 include 하지 않아도 잘 실행되는 이유

string 헤더파일을 include 하지 않아도 string 클래스와 멤버함수들까지 에러없이 컴파일 되고 실행이 잘 될 때가 있다. 그 이유가 뭘까? 1. 다른 표준 라이브러리 헤더들 중 하나가 헤더를 내부적으로 포함하고 있는 경우 헤더는 헤더를 포함하고 있어서 헤더를 포함시키지 않아도 string 클래스의 사용이 가능하다. 그 밖에도 다른 표준 라이브러리 헤더들 중 하나가 내부적으로 헤더를 포함하고 있어 사용이 가능할 수 있다. 2. 컴파일러 자체적으로 표준 라이브러리 사용을 제공하는 경우 컴파일러가 기본적으로 C++ 표준 라이브러리를 사용하는 경우, 명시적으로 헤더를 포함시키지 않아도 사용이 가능하다. 하지만, 다른 환경, 다른 컴파일러 등에서는 정상적으로 동작하지 않을 수도 있으며, 암시적으로 다..

언어/C++ 2024.01.28

[C++] vector 최댓값, 최솟값 구하기 (+ 인덱스까지)

먼저, algorithm 헤더를 불러와야 한다. #include algorithm 헤더에 담긴 min_element 함수와 max_element 함수를 사용하면 쉽게 최댓값, 최솟값, 그리고 그 값들의 인덱스 번호까지 구할 수 있다. 1. 최솟값 min_element : 벡터에서 최솟값의 위치를 반환. 최솟값 자체를 구하려면 포인터를 사용하여 값에 접근하여야 함. //최솟값 *min_element (벡터이름.begin(), 벡터이름.end()); //최솟값의 인덱스 min_element ( 벡터이름.begin(), 벡터이름.end() ) - 벡터이름.begin(); //인덱스는 리턴된 벡터의 위치에서 벡터의 시작위치를 빼서 구함 2. 최댓값 max_element : 벡터에서 최댓값의 위치를 반환. 최댓값..

언어/C++ 2024.01.26

[C++] vector 정렬 (오름차순, 내림차순, 마음대로)

먼저, algorithm 헤더를 불러와야 한다. #include 1. 오름차순 정렬 sort (벡터이름.begin(), 벡터이름.end()); 2. 내림차순 정렬 sort(벡터이름.begin(),벡터이름.end(), greater()); /*greater인데 여기서는 int를 예시로 함. greater함수와 vector의 자료형을 맞춰야 정상적으로 정렬이 된다. */ 표준 라이브러리 내에 있는 greater() 라는 비교 함수를 마지막 파라미터로 전달하여, 숫자가 클수록 앞으로 정렬되게 설정해준다. 3. 사용자가 원하는 대로 정렬 sort (벡터이름.begin(), 벡터이름.end(), 사용자가 만든 함수); // bool compare(string a, string b){ return a.size() ..

언어/C++ 2024.01.26