1️⃣알고리즘 코드카타
https://school.programmers.co.kr/learn/courses/30/lessons/140108
[문자열 나누기]
🤖 AI 피드백
1. 불필요한 변수 제거
하나의 카운터(balance)로 관리하여, xCount와 notXCount의 차이를 추적 가능
2. 불필요한 문자 접근 최소화
단순히 x와 같은지 여부만 체크하면 되므로, 불필요한 if 분기를 줄일 수 있음
#include <string>
using namespace std;
int solution(string s) {
int answer = 0;
int xCount = 0, notXCount = 0;
for (int i = 0; i < s.size(); ++i) {
(s[i] == s[answer]) ? ++xCount : ++notXCount;
if (xCount == notXCount) {
++answer;
xCount = notXCount = 0;
}
}
return answer + (xCount != 0);
}
💭 회고
오 횟수를 비교할 때 변수를 따로 두고 비교하는 게 아닌
하나의 변수로 +/-를 해서 비교할 수 있구나..!
2️⃣드론 제작하기
1. 드론 Roll 제한적으로 사용하기
void ADronePawn::Roll(const FInputActionValue& value)
{
float RollInput = value.Get<float>();
float StopRoll = 1;
if (!FMath::IsNearlyZero(RollInput) && !IsOnFloor)
{
if (RollNum > 45 && RollNum < 90 )
{
StopRoll = RollInput > 0 ? 0 : 1;
}
else if (RollNum >270 && RollNum < 315)
{
StopRoll = RollInput > 0 ? 1 : 0;
}
AddControllerRollInput(RollInput * StopRoll * Sensitivity);
}
}
2. Roll 값을 위치 이동에 반영하기
if (RollNum > 0 && RollNum < 90)
{
AddActorWorldOffset(GetActorRightVector() * (RollNum / 45) * 30 * DeltaTime, true);
}
else if (RollNum > 270 && RollNum < 360)
{
AddActorWorldOffset(-GetActorRightVector() * ((360 - RollNum) / 45) * 30 *DeltaTime, true);
}
3. 모델링 병합/분할/피봇 수정하기
1. 프로펠러만 돌리고 싶어서 fbx를 병합하지 않고 가져온 후
몸체 부품들을 하나로 Union
2. 프로펠러는 2개가 합쳐져 있어 Split으로 날개들 분리 후
하나의 프로펠러만 Union
3. 피봇은 Edit Pivot으로 수정
🔽 자세한 사항은 아래 글에서 확인 가능
Unreal5 애니메이션 없는 드론의 프로펠러 돌리기(언리얼 에디터로 스태틱 메시 분리)
🔷개요비행체를 언리얼에서 구현할 때 날개가 있는 비행체라면 이 날개를 돌려야 현실적인 구현이 가능하다.하지만 에셋을 사용할 경우 하나의 fbx로 들어오기 때문에 애니메이션이 따로 포함
yoosorang.tistory.com
💭회고
프로펠러 회전을 시키고 싶어서 스태틱 메시를 따로 해서 코드로 프로펠러 부분만 회전시켰다.
하지만 보통 이런 건 스켈레탈 메시에 애니메이션을 적용하는 게 일반적이겠지?
블렌더를 켜서 애니메이션 작업을 굳이 하기는 싫었다.
드론은 얼추 다 만들기는 했는데
내일은 각도에 따른 드론의 스태틱 메시를 회전시키는 작업을 하려고 한다.
아니 그리고 Look함수를 제한을 시키고 싶은데 위의 Roll 함수처럼 제한을 시키자니
입력 값이 X, Y 2개라 복잡해질 것 같다.
Add가 아닌 Set으로해야하려나..?
근데 컨트롤러 회전은 Set이 안되는 거 같은데..
일단 내일 이것저것 만져봐야겠다.
'TIL' 카테고리의 다른 글
[250131 TIL] Collision Block, OnComponentHit, 컴포넌트 태그를 사용해보았다 (0) | 2025.01.31 |
---|---|
[250130 TIL] SetTimer에 사용할 함수의 반환형은 void여야 함 (0) | 2025.01.30 |
[250128 TIL] 폰으로 드론 제작하기 AddActorWorldOffset의 FHitResult (0) | 2025.01.28 |
[250127 TIL] 장애물 퍼즐 스테이지 상속 받은 Tick의 Super는 필수! (0) | 2025.01.27 |
[250124 TIL] 언리얼5 캐릭터 무브먼트 없이 폰으로 플레이어 만들기 (0) | 2025.01.24 |