[UE5 TIL] Day 20 - C++ 학습/과제

JungHoon Eum·2026년 3월 24일

C++ 4번 과제

  • AlchemyWorkshop 클래스 안에 recipeManager, stockManager 클래스 이렇게 가지고 있을 경우 -> 각 객체들 함수들 접근하기 위해 AlchemyWorkshop 자체에도 동일한 이름의 함수 필요.
void addRecipe(const std::string& name, const std::vector<std::string>& ingredients)
{
    recipeManager.addRecipe(name, ingredients);
    stockManager.initializeStock(name);
}
  • 이런 식으로.
    한 동작에 여러 가지 함수 불러올 수 있다는 건 좋긴 함.
  • map 선언: std::map<std::string, int> potionStock;
  • range-for 문 활용 하면 사이즈에 대해 확신할 수 없는 컨테이너들 프린트하기 편함
    for (const PotionRecipe& recipe : ingredientSearchRecipes)
  • std::cin.ignore(10000, '\n'); 이렇게 입력값을 지우는 건
    std::getline(std::cin, name); 처럼 getline 쓸 때, string 값 받을 때 필요하지 int 값 받을 땐 굳이 필요없다. 그 대신 if(std::cin() = fail())std::cin.ignore(10000, '\n'); 쓰면 됨
  • 평소에 void 로 쓰던 함수들 성공/실패 여부를 함수 밖에서 판별해서 사용할 때 bool retrievePotion() 마냥 써도 된다.
    if 문에 넣든 return 값에 넣든 기본적으로 함수 호출되는 순간 내부 작동(변수 수정 등등) 다 작동하니까 void 함수랑 거의 동일하게 사용해도 됨.

C++/Unreal 5번 과제

  • 드디어 Unreal C++ 시작. 외워야 할 문법이 너무 많다.

기억해야 할 문법

  • #include "Engine/Engine.h" cpp쪽에 넣기
  • GEngine->AddOnScreenDebugMessage(-1, 3.0f, FColor::Red, TEXT("내용"));
    블루프린트에서 했었던 print string 하는 거. -1 부터 순서대로 메시지 키, 메시지 지속시간(float), 메시지 색, 내용
    • GEngine은 포인터라 원래 nullptr 인지 제대로 불러와져 있는지 확인하고 써야 함. 본문에선 if(GEngine){} 안에 넣는 식으로 해결. 자주 쓰려면 따로 함수 만들어서 포인터 확인 제대로 해주는 게 필요.
    • -1 부분은 메시지 키. 1, 2, 3... 순서 등록된 건 같은 메시지 키를 가진 화면에 표시되는 메시지를 매번 갱신하면서 띄워준다. -1은 매번 새로운 메시지를 등록하는 것.
  • UE_Log(LogTemp,Warning, TEXT("내용")); 이건 output에 나오는 로그.
  • 온스크린이든 로그든, 변수 출력은 C때랑 비슷하게 TEXT("") 에서 "" 안에는 %f, %d, %s 식으로 해두고 ") 뒤에 변수명들 입력하는 식으로 가능.
    • OnScreenDebugMessageTEXT 대신 FString::Printf(TEXT(""))
  • FVector는 고대로 자료형처럼 써도 된다. FVector ActorLocation = GetActorLocation();
    FVector(myX,myY,myZ);
    GetActorLocation()+myFVector 식으로도 가능
    • FVector::Dist(A,b): 거리계산
    • FRotator() -> 이거 Rotation 계산할 때.
  • 랜덤: FMath::RandRange(시작값,끝값); OR 'FMath::FRand();
  • GetActorLocation(), GetActorRotation(), SetActorLocation() 등등은 블루프린트때랑 비슷하게 쓴다.
profile
개발지망생

0개의 댓글