FMath::Sin 함수 사용해서 부유하는 느낌의 플랫폼 만들기
·
내배캠/Unreal Engine
* 헤더파일#pragma once#include "CoreMinimal.h"#include "MovingPlatform.h"#include "FloatingSinePlatform.generated.h"UCLASS()class STRIKEZONE_API AFloatingSinePlatform : public AMovingPlatform{ GENERATED_BODY()private: FVector StartLocation; float RunningTime;public: AFloatingSinePlatform(); virtual void MovePlatform(float DeltaTime) override;protected: UPROPERTY(EditInstanceOnly, BlueprintReadWrite,..
Enhanced Input System
·
내배캠/Unreal Engine
인풋 액션의 연결 개념 1. PlayerController는 Enhanced Input Subsystem을 통해 IMC를 활성화한다.2. 이 IMC는 키보드/마우스/게임패드 등의 입력을 IA에 매핑한다.3. PlayerController가 유저의 Input을 받아 IA을 트리거한다.4. PlayerCharacter는 SetupPlayerInputComponent 함수를 통해 IA에 바잉딩된 함수를 호출한다.    *Character.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Character.h"#include "PlayerCharacter.generated.h"class USpringArmComponent;class UCameraComp..
StaticClass( ) 메서드
·
내배캠/Unreal Engine
StaticClass( ) 메서드언리얼 엔진에서 사용되는 정적 메서드로, 해당 클래스의 메타데이터를 담고 있는 UClass 객체를 반환한다.이 메서드는 객체를 생성하지 않으며, 클래스에 대한 정보를 얻는 데에 사용된다.UObject를 기반으로 생성된 클래스들에서만 자동으로 생성되고, 이는 UClass( ) 매크로로 선언되어 리플렉션 시스템에 포함되어 있는 클래스에 대해 UHT이 코드를 생성할 때 추가한다는 것을 의미한다.  if (SomeActor->GetClass() == APlayerCharacter::StaticClass()) { // SomeActor가 APlayerCharacter인지 확인}런타임에 특정 클래스의 정보를 가져와 다른 클래스와의 비교에 사용될 수 있다.static 메서드이기 ..
부동 소수점 연산 오차
·
내배캠/Unreal Engine
FMath::IsNearlyZerostatic bool IsNearlyZero(float Value, float Tolerance = SMALL_NUMBER);부동소수점 연산의 특성상 발생할 수 있는 미세한 오차를 고려하여, 특정한 허용 오차 범위 내에서 0인지 판단한다.Value: 검사할 실수 값Tolerance: 허용 오차로, 기본 값은 SMALL_NUMBER(언리얼에 정의된 상수로, 아주 작은 값)이다. bool: true이면 값이 Tolerance 내에서 0에 가까운 것으로 간주, false이면 값이 0에서 멀다고 판단  FMath::IsNearlyEqualstatic bool IsNearlyEqual(float A, float B, float Tolerance = KINDA_SMALL_NUMBE..
FRotator와 FQuat
·
내배캠/Unreal Engine
언리얼 엔진에서 FRotator와 FQuat은 모두 회전을 표현하는 구조체이다.하지만 차이점이 존재하고 각자 장단점과 사용목적이 다르다.  FRotator와 FQuat의 차이점 FRotator구성요소:Pitch(y축), Yaw(z축), Roll(x축)형태:오일러 각(Euler Angles)로 회전을 표현장점: 직관적: 사람이 이해하기 쉽고, 에디터 UI와 직결되어있다.특정 축을 기준으로 회전을 조정하거나 디버깅할 때 유용하다.단점:Gimbal Lock 문제: 특히 90도 회전 근처에서 두 축이 겹쳐져 특정 회전 값에서 하나의 자유도를 잃는 문제 발생y축으로 90도 회전하였을 경우, 우측과 같이 x축과 z축이 겹치게 된다.이로 인해 3축 회전이 아니라 2축 회전만 가능하게 되고, 결과적으로 회전을 정확하게..
액터의 라이프 사이클
·
내배캠/Unreal Engine
// 메모리에 생성될 때, 단 한 번 호출// 월드에 스폰된 상태가 아니므로 다른 액터, 월드와 상호 작용X// 컴포넌트 생성 및 기본 변수 초기화에 사용constructor() // 액터의 모든 컴포넌트 생성 및 초기화 직후 자동으로 호출// 월드에 액터가 스폰되기 전, 컴포넌트끼리 데이터 상호작용에 사용PostInitializeComponents()// 게임 시작이나 월드에 액터가 스폰될 때 호출// 월드와 다른 액터들도 준비된 상태이므로 자유롭게 상호작용 가능// AI, 게임모드, 플레이어 컨트롤러 등 다른 시스템과의 연동 처리하기 적합BeginPlay()// 매 프레임마다 호출// 실시간 업데이트가 필요한 로직에 적합하지만 성능 저하 고려Tick(float DeltaTime)// 삭제 되기 직전에..