
AI로 조준하기저번 강의에 이어서 AI에 대해 더 자세하게 알아보자.이번엔 AI 포커스라는 것에 대해 알아보게 된다.AI 캐릭터들이 플레이어 캐릭터를 계속하여 포커스하며 시선을 따라오게 된다. 전 강의에서 생성만 했던 SHooterAIController 클래스에서 구현을 하게 되며, 해당 클래스에 BeginPlay 함수를 만들어주고 해당 함수에서 포커스를 하게 된다. 그리고 사용할 포커스 함수는 다음과 같다.포커스할 대상과 우선순위 값을 받는데, 보통 GamePlay를 기본으로 하므로 따로 건들지 않는다. 포커스할 대상은 우리 플레이어이기에 플레이어 폰을 얻을 필요가 있다.이는 UGameplayStatics에 속한 GetPalyerPawn 함수를 통해 얻을 수 있다. 플레이어 캐릭터는 인덱스가 0이므로..

AI 컨트롤러 생성하고 설정하기현재 적 역할을 위해 세워둔 캐릭터는 아무런 동작없이 가만히 서있기만 한다.생동감 넘치는 적을 표현하기 위해서 AI 기능을 부여할 필요가 있으며, 이번 강의에서 AI 작업을 위한 기본적인 세팅 작업을 복습하게 된다. 먼저 AIController C++ 클래스를 생성하자. 그리고 해당 AIController를 기반으로 한 블루프린트 또한 생성해주자. 그리고 해당 블루프린트 AIController를 우리가 사용할 폰의 디폴트 AIController 클래스로 할당해주자. 이제 플레이를하고 아웃라이너에서 해당 AIController가 검색되는 모습을 볼 수 있다.

이제 사망 애니메이션을 실제 게임플레이랑 연결해보자.전에 선언했던 bool 타입 변수인 Is Dead을 통해 사망 여부를 판별하기 위해 VScode에서 사망 여부를 판별하고 리턴해주는 블루프린트로 노출 가능한 함수를 작성해줄 필요가 있다. 블루프린트에 노출시키기 위해서는 UFUNCTION을 작성해주면 되고, 안에 내용은 BlueprintPure를 작성해주었다.BlueprintPure의 의미는, C++의 const와 유사하지만 더 강력한 의미로 간단하게는 실행핀이 없는 함수를 뜻한다.더 자세히 말하자면 실팽 핀이 없는 함수는 보통 호출하는 대상에 아무 영향을 끼치지 않고 결과만 받는 다는 것을 뜻한다. 예시로 속도를 얻기 위해 사용했던 Get Velcoity 함수 등이 있다.해당 함수 자체는 단지 속도만 ..
문제링크 : https://www.acmicpc.net/problem/1337#include using namespace std;typedef long long ll;typedef pair pii;const int MAX = INT_MAX;int N, arr[51];int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(int i=0; i> arr[i]; sort(arr, arr+N); int cnt = 1; for(int i=0; i 먼저 입력받은 배열에 대해 정렬해주고 시작한다.올바른 배열의 길이가 5이므로, 현재 값을 기준으로 최대 +4의 값까지 길이 확장이 가능하다.따라서 현재 위치의 값과 앞에 있..