코드카타-K번째 수

#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
for (const auto& cmd : commands)
{
int i = cmd[0];
int j = cmd[1];
int k = cmd[2];
vector<int> sub;
for (int idx = i-1; idx <= j-1; ++idx)
{
sub.push_back(array[idx]);
}
sort(sub.begin(), sub.end());
answer.push_back(sub[ k-1 ]);
}
return answer;
}
카메라 타겟암 변환 구현
1.앞으로 움직이면 카메라가 멀어진다
2.카메라가 움직였을때 딜레이가 있다
3.뒤로가면 줌이 땡겨진다
이것을 구현했는데

더보기
ACharacter 클래스를 상속받은 코드에서 다음과 같이 작성할 수 있었다.
// 속도에 따른 팔 길이 조절을 위한 설정값
UPROPERTY(EditAnywhere, Category = "Camera")
float MinArmLength = 300.0f;
UPROPERTY(EditAnywhere, Category = "Camera")
float MaxArmLength = 800.0f;
UPROPERTY(EditAnywhere, Category = "Camera")
float ZoomInterpSpeed = 2.0f; // 변화 속도
이 코드는 PlayerCharacterBase.h 파일에,
void AMyCharacter::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
// 1. 캐릭터의 로컬 앞방향 속도 계산
float ForwardSpeed = FVector::DotProduct(GetVelocity(), GetActorForwardVector());
// 2. 목표 거리 결정 (앞으로 가면 Max, 뒤로 가면 Min에 가깝게)
// 캐릭터의 최대 속도 대비 현재 속도 비율로 계산하거나 간단한 조건문 사용
float TargetLength = MinArmLength;
if (ForwardSpeed > 10.0f) {
TargetLength = MaxArmLength; // 앞으로 갈 때 멀어짐
}
else if (ForwardSpeed < -10.0f) {
TargetLength = MinArmLength * 0.5f; // 뒤로 갈 때 더 당겨짐
}
else {
TargetLength = MinArmLength; // 정지 시 기본 거리
}
// 3. FInterpTo를 사용하여 부드럽게 거리 조절
SpringArm->TargetArmLength = FMath::FInterpTo(
SpringArm->TargetArmLength,
TargetLength,
DeltaTime,
ZoomInterpSpeed
);
}
이 코드는 PlayerCharacterBase.cpp 파일에 이식하였다.
'TIL' 카테고리의 다른 글
| 2/12일자 TIL (0) | 2026.02.12 |
|---|---|
| 2/11일자 TIL (0) | 2026.02.11 |
| 2/09일자 TIL (0) | 2026.02.09 |
| 2/06일자 TIL (0) | 2026.02.06 |
| 2/05일자 TIL (0) | 2026.02.05 |