반응형

2023/03 14

UE C++ 함수를 블루프린트에서 오버라이드

BlueprintNativeEvent를 사용하면 C++ 클래스에서 만든 함수를 블루프린트에서 오버라이드 하는 것이 가능해짐 BlueprintNativeEvent로 함수를 생성하고 함수를 정의할때에는 함수명 뒤에 _Implementation을 붙여야함 BlueprintNativeEvent 사용의 이점은 프로그래머가 매번 C++ 코드를 수정할 필요없이 블루프린트에서 커스터마이즈 및 확장할 수 있으며 재사용 가능한 C++함수를 생성할 수 있다는 점임 이를 통해 개발을 간소화하고 서로 다른 기술을 가진 개발자가 프로젝트에서 더 쉽게 함께 작업할 수 있음

UE5 2023.03.30

2023 신기한 소수

2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 이 문제를 해결하려면 N자리 수를 모두 생성하고 각각이 신비한 소수라는 조건을 만족하는지에 대해서 검사해야 합니다. N 자리에 도달할 때까지 한 번에 한 자리씩 더하는 재귀 함수를 사용하여 모든 N 자리 숫자를 생성할 수 있습니다. 그런 다음 생성된 각 숫자에 대해 소수성 테스트 기능을 사용하여 모든 접두사 (1자리, 2자리, 3자리 등)가 소수인지 확일할 수 있습니다. 숫자가 모든 접두사에 대한 소수 테스트를 통과하면 신비한 소수이며 결과 리스트에 ..

UE Delegate

언리얼에서는 C#에서와 같이 델리게이트라는 기능이 있음 delegate는 위임하다 라는 뜻을 가지고 있는데 이 뜻과 같이 함수의 실행을 위임하는 역할을 한다고 생각하면 됨 델리게이트 매크로의 종류 // 델리게이트에서 하나의 처리 함수만 등록할 수 있음 DECLARE_DELEGATE(DelegateName) // 델리게이트에 여러 개의 처리 함수를 등록할 수 있음 DECLARE_MULTICAST_DELEGATE(DelegateName) // C++클래스와 블루프린트 둘 다에서 함수 등록할 수 있음 DECLARE_DYNAMIC_DELEGATE(DelegateName) // 델리게이트에서 하나의 처리 함수를 등록하면서 하나의 지정한 타입의 parameter를 보낼수 있음 DECLARE_DELEGATE_OneP..

UE5 2023.03.29

UE5 Navigation Invoker를 이용한 AI 길찾기

AI가 길찾기 기능을 수행하기 위해서는 AIController를 이용해야 하는데 AIController를 이용하려면 AIMoudule을 우선적으로 등록해줘야함 ProjectName.Build.cs라는 이름의 파일에 들어가보면 위와 같은 것을 볼 수 있는데 NavigationSystem과 AIModule을 추가해줌 Sysyem은 오타 AIController를 선언하고 해더 추가 후 ai 컨트롤러를 불러옴 이후 이동하는 로직에서 AIController의 MoveToLOcation함수를 사용해 목적지를 인자로 보내주면 목적지로 가는 길을 찾아서 이동하게 됨 이때 Nav Mesh Bounds Volume을 사용하여 ai가 이동할 수 있는 범위를 지정해 줄 수 있음 위와 같은 경우 목적지로 하는 타깃이 아주 멀리..

UE5 2023.03.22

Collision Event를 C++에서 처리하는 법

Unreal C++ 클래스에서 Collision Event를 C++ 함수에 바인딩하려면 다음 단계를 따라야 합니다: 바인딩하려는 이벤트를 UFUNCTION로 선언합니다. OnComponentBeginOverlap, OnComponentEndOverlap의 경우 다음과 같이 선언 합니다 2. AddDynamic 함수를 이용하여 아래와 같이 이벤트 발동시 호출될 함수를 바인딩 해줍니다. 이제 Collision Overlap 시작, 종료시 BeginOverlap, EndOverlap 함수가 호출됩니다.

UE5 2023.03.21

11724 연결 요소의 개수(BFS)

로그인 www.acmicpc.net 해결 방법: 방향 없는 그래프를 인접 리스트로 표현합니다. 그래프의 모든 정점에 대해 BFS 탐색을 수행합니다. BFS 탐색을 수행하면서 방문한 정점들을 모두 체크합니다. 이 과정에서 연결된 모든 정점들은 같은 연결 요소에 속하므로, 탐색이 끝나면 연결 요소의 개수를 증가시킵니다. 탐색이 끝난 후, 연결 요소의 개수를 출력합니다. #include #include #include using namespace std; vector vec; vector isvisit; int result = 0; void bfs(int n); // 11724 int main() { int V, E; cin >> V >> E; vec.resize(V + 1); isvisit.resize(V ..

병합 정렬

병합정렬(Merge Sort)은 분할 정복(divide and conquer) 알고리즘 중 하나로, 주어진 배열을 반으로 나누고, 각 부분 배열을 재귀적으로 정렬하며, 정렬된 부분 배열을 병합하여 전체 배열을 정렬하는 방식입니다. 아래는 병합정렬의 구체적인 과정입니다. 주어진 배열을 반으로 나눕니다. 이때, 배열의 크기가 1 이하가 될 때까지 계속해서 반으로 나누어줍니다. 각 부분 배열을 정렬합니다. 이때, 재귀적으로 정렬을 수행합니다. 정렬된 부분 배열을 병합합니다. 병합할 때는 각 부분 배열의 첫번째 원소를 비교하여 작은 값부터 새로운 배열에 추가해줍니다. 전체 배열이 정렬될 때까지 위 과정을 반복합니다. 아래는 C++ 코드로 구현한 병합정렬 예시입니다. #include #include using n..

반응형