간단한 게임에 쓰인 기능(1)

Oak_Cassia·2022년 7월 4일
0
post-thumbnail

컴포넌트

  • 액터에 추가할 수 있는 하나의 함수 기능
  • 자립할 수 없어 액터에 어태치 필요
    • RootComponent
      • CreateDefaultSubobject<>() //객체 생성
      • SetupAttachment() // 어태치

씬 컴포넌트

  • 트랜스폼 존재
  • 어태치 지원
  • AActor의 RootComponent가 USceneComponent*로 선언되어 있다.

캡슐 컴포넌트

  • 간단한 충돌
  • USceneComponent 상속

UStaticMeshComponent

  • StaitcMesh의 인스턴스를 생성하는데 사용
  • 시각적 표현

틈새
가능한 헤더 파일을 cpp에 두고 h에서는 전방선언을 하자

Property Specifiers

  • property를 선언할 때 같이 선언

  • Visible, Edit

    • + DefaultsOnly
      + InstanceOnly
      + Anywhere
  • 블루프린트에서 사용하려면?

    • BlueprintReadWrite
    • BlueprintReadOnly
    • private 인 것에 접근하려면?
      • meta = (AllowPraivateAccess = "true")
  • 카테고리를 지정해 줄 수도 있다.

    • Category+"카테고리 명"

카메라

UCameraComponent

  • USceneComponent 상속
  • USpringArmComponent 하위에 어태치
    • 스프링 암을 조정해 카메라 트랜스폼 변경

조작

폰 블루프린트에서 플레이어 자동 빙의 체크 가능

Axis Mappings

  • Axis 이벤트는 매 프레임 발동
    • Axis의 현재 값 전달

Action Mappings

  • 키 입력에 따라 Pressed 또는 Released 발동

바인딩은
Pawn/Character::SetupPlayerInputComponent 에서 주로 하고
InputComponent가 있으면 어디든 가능

참고 기사
April 19, 2014
Input Action And Axis Mappings In UE4


오브젝트의 트랜스폼을 변경할 때 에디터에서 쉽게 좌표계를 변경할 수 있다.
world space
local space

AActor::AddActorLocalOffset

Delta Time을 얻으려면
UGameplayStatics::GetWorldDeltaSeconds()

AddActorLocalRotation

  • 회전

FRotator

APlayerController::GetHitResultUnderCursor

APawn::GetController

FHitResult

  • 주로 생성 후 함수에 인자로 전달해 결과를 전달 받는다.
  • return으로 안받고

ECC_Visibility

DrawDebugSphere

Simple vs Complex Collision

Blocking Volume

  • 블록킹 하는 볼륨

FVector::Dist

  • 유클리드 거리

GetPlyaerPawn

Action Mappings(Axis 와의 차이점 및 참고)

  • 이벤트 발생시 콜백 함수 호출
  • 매개변수를 전달하지 않음
  • 매 프레임이 아니라 이벤트 발생시 한 번 작동

FTimerManager
SetTimer
FTimerHandle

GetWorldTimerManager().SetTimer(FireRateTimerHandle, this, &ATower::CheckFireCondition, FireRate, true);

TSubclassOf
UClass
TSubclassOf ProjectileClass;//BP에서 클래스에 대한 정보를 전달할 수 있다.U클래스 타입을 저장(에디터에서)//선언

UWorld::SpawnActor<>() //런타임에 가능

UProjectileMovementComponent

UPrimitiveComponent Hitevent
UStaticMeshComponent inherit

//Hit Events
OnComponentHit.AddDynamic
FComponentHitSignature

Multicast Delegate
Invocation list
Broadcast
방송에 응답해서 묶인 함수들 전부 호출
함수 매개변수 예
void AProjectile::OnHit(UPrimitiveComponent HitComp, AActor OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit)

OnTakeAnyDamage Delegate(멀티 캐스트)

UGameplayStatics::ApplyDamage

UHealthComponent::DamageTaken(AActor DamagedActor, float Damage, const UDamageType DamageType, class AController INstigator, AActor DamageCauser )

ApplyDamage

UDamageType

Player Controller
EnableInput

FTimerHandle
FTimerManager
FTimerDelegate::CreateUObject
GetWorldTimerManager().SetTimer

UFUNCTION(BlueprintImplementableEvent)

Widget
위젯 생성
add to viewport

UFUNCTION(BlueprintImplementableEvent)
블루프린트 임플리메터블이벤트는 c++의 어떠한 시점에서 호출하고 블루프린트 내에서 이벤트시 작동될 함수를 구현할 수 있어 편리하다.

UGameplayStatics::GetAllActorsOfClass

StaticClass()

UParticleSystem

SpawnEmitterAtLocation

UParticleSystemComponent

USoundBase

PlaySoundAtLocation

UMatineeCameraShake

ClientStartCameraShake()

CameraShake

profile
rust로 뭐할까

0개의 댓글