Udemy 강좌를 수강하던 도중 헷갈리는 부분이 있었다. 문을 잡기 위해 좌클릭을 누를 때 플레이어의 이동과 시야 조정을 멈추고, 때었을 때 다시 활성화하는 부분이다. 논리적으로 따져보면 시야 조정을 멈추기 위해 Disable Input을 해야 하고, 다시 활성화하기 위해 Enable Input을 하는 게 맞지 않은가? 하는 생각이 들었다. Enable Input Enable Input docs.unrealengine.com 그래서 언리얼 공식 문서를 보았는데 별 내용이 없었다.. 유일하게 눈에 띄는 Input Stack이라는 단어를 발견했고 나는 이것에 대해 찾아보았다. 플레이어 컨트롤러는 매 프레임마다 APlayerController::Tick을 호출한다. 그리고 Tick 내에서 APlayerCont..
2의 개수 count(v.begin(), v.end(), 2); 30세 미만인 사람의 수 count_if(v.begin(), v.end(), [](const Person &prsn) { return prsn.age < 30; }); accumulate에서 다음은 같다. accumulate(v.begin(), v.end(), 0); // 전달된 Lambda 함수에서 n은 현재 까지의 합, e는 현재 원소를 뜻한다. accumulate(v.begin(), v.end(), 0, [](const int n, const int e) { return n + e; }); 2차원 벡터에서 8의 개수 vv의 원소 자료형이 vector이기 때문에 Lambda 식 함수 op의 2번째 인자 형식도 맞춰주어야 한다. // 현재..
Level 0. 안전지대 폭탄과 인접한 칸들만 위험 지역으로 표시하기 때문에 깊이 1까지만 수행하는 BFS라고 볼 수도 있다. 나는 원소에 접근할 때 범위를 검사하기보다는 vector::at() 함수와 예외 처리를 활용했다. 폭탄이 있을 경우 인접 칸들을 위험 지역(2)으로 표시하고 마지막에 안전 지역(0)의 개수를 세어 해결했다. #include #include #include #include using namespace std; void setDanger(vector& board, int i, int j) { for (int k = i - 1; k
코딩 테스트를 위한 자료 구조와 알고리즘 with C++ std::forward_list의 단점 성능상 이유로 마지막에 원소 추가, 역방향 진행, 크기 반환 등을 지원하지 않는다. 빠른 원소 삽입에 적합한 컨테이너는 아니다. std::list STL에서 제공하는 이중 연결 리스트 컨테이너이다. 양방향 반복자를 제공한다. 마지막에 원소 추가, 크기 반환을 지원한다. std::list의 성능 삽입, 삭제 연산시 2개의 포인터를 처리해야 하므로 std::forward_list보다는 시간이 좀 더 걸린다. 크기를 저장하므로 크기 반환은 O(1)에 수행된다. 원소의 삽입 삭제는 O(1)에 수행된다. (삽입할 위치 전의 반복자를 알고 있다는 전제 하에) 특정 위치의 원소를 참조하기 위해서는 반복자를 직접 진행해야 ..
Unreal Engine: Ultimate Survival Horror Course 밀어서 여는 문 Actor Blueprint Class 생성 문 프레임, 문 몸체를 위한 Static Mesh를 추가하고 설정해준다. 문 몸체의 물리를 활성화한다. Simulate Physics: 물리 활성화 MassInKg: 질량 (설정 안 할 시 자동으로 계산) Linear Damping: 움직일 때 제동력 Angular Damping: 회전할 때 제동력 Constraints: 특정 축의 이동/회전을 제한 회전 정도를 제한하기 위해 Physics Constraint를 추가 문의 자식으로 등록할 필요는 없다. Linear Limits: 이동 제한 Angular Limits: 회전 제한 Swing 1 Motion: Z축 ..
Unreal Engine: Ultimate Survival Horror Course Show Inherited Variables를 클릭하면 상속된 변수들도 볼 수 있다. Self는 현재 액터 자신을 뜻한다. 플레이어가 문을 향하는 방향과 문의 앞 방향을 내적하고 Promote to Variable을 클릭해 변수로 승격시킨다. 내적 값을 확인해본다. 플레이어가 문의 뒤에 있으면 음수, 앞에 있으면 양수를 갖는다. 문을 열 때 내적 값을 저장하고 그 값을 Select 노드에서 활용해 문을 열고 닫을 때의 방향을 결정한다. 문을 열고 닫을 때 방향이 바뀌면 안 되므로 아래 dot 노드를 Select에 바로 연결하면 안 된다. 양쪽으로 열리는 문을 완성했다.