본문 바로가기
프로그래밍/Unreal Engine4

언리얼 C++ 함수와 사용예제

by 눈야옹 2016. 4. 3.

// 이 폰을 가장 빠른 번호의 플레이어가 조정하도록 설정

AutoPossessPlayer = EAutoReceiveInput::Player0;

//카메라를 만들고

UCameraComponent* OurCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("OurCamera"));

//카메라를 루트에 가져다 붙이고 (자식이된다.)

OurCamera->AttachTo(RootComponent);

// 카메라의 이동

OurCamera->SetRelativeLocation(FVector(-250.0f, 0.0f, 250.0f ));

// 카메라의 회전 

OurCamera->SetRelativeRotation(FRotator( -45.0f, 0.0f, 0.0f ));

// 스케일링

// 크기가 1보다 아래로 줄거나 2배이상 되지 않게 한다.

CurrentScale = FMath::Clamp( CurrentScale, 1.0f, 2.0f );

OurVisibleComponent->SetWorldScale3D(FVector(CurrentScale));


!주의 언리얼에서 회전과 이동을 할때 둘다 인자갑이 3개지만 이동은 FVector 회전은 FRotator을 사용한다.


//Clamp 들어가는 AxisValue 값의 범위를  -1.0f ~ 1.0f로 고정한다.

CurrentVelocity.X = FMath::Clamp(AxisValue, -1.0f, 1.0f) *MoveSpeed;


//Input 관련

UInputComponent* InputComponent <- 이것을 사용하여 인풋을 조절할수 있다. AActor에 선언되어 있다.

virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override; <- 이란 함수가 ACharactor에 override 되어있는데 이 Function은 Pawn 에서 생성되었다.

//Input중 Axis 키 관련 사용법 (키 이름, 적용할 클래스, 이밴트 발생할 함수)

InputComponent->BindAxis("MoveX", this, &AMyPawn::Move_XAxis);

void Move_XAxis(float AxisValue); <-- 함수의 인자값으로 Axis를 float로 받아준다.

//Input중 Action 키 관련 사용법 (키 이름, 키 상태, 적용 클래스, 이밴트 발생 함수 ) 
InputComponent->BindAction("Grow", IE_Pressed, this, &AMyPawn::StartGrowing); 

void StartGrowing(); <-- 함수의 인자값이 없다.