오늘의 목표

언리얼 멀티플레이 강의 수강 완료하기

 


 

프로퍼티 레플리케이션 심화

레플리케이션이나 시리얼라이제이션 할 때 -> bool 대신 uint8 자료형 사용.

uint8로 1비트만 사용한다는 걸 확실히 해줌.

 

멀티플레이 관련 로직은 간단하게 짜야 함.

multicastRPC 함수 내에서 bIsReplicated = true로 만드는 로직이 있을 경우에

bIsReplicated = true가 먼저 적용돼서 multicastRPC 함수를 통해 폭탄을 폭발시키는 것이 불가능해질 수 있음. 

(무엇이 먼저 호출되는지는 정해져있지 않음)

 

depths가 너무 깊은 로직을 짜면 안 됨! 특히 멀티플레이 로직에서는 로직이 완전 꼬여버릴 수 있음.

 

애니메이션

에임에 따라 고개가 돌아가는 애니메이션

 

void ADXPlayerCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

	if (IsValid(GetController()) == true)
	{
		PreviousAimPitch = CurrentAimPitch;

		FRotator ControlRotation = GetController()->GetControlRotation();
		float NormalizedPitch = FRotator::NormalizeAxis(ControlRotation.Pitch);
		CurrentAimPitch = FMath::Clamp(NormalizedPitch, -90.0f, 90.0f);
	}
}

 

컨트롤러에서 ControlRotation을 받고, 이를 Pitch값으로 변환하여 CurrentAimPitch로 사용.

여기서는 Tick을 통해 매 틱 Rotation을 확인.

 

if (IsLocallyControlled() == true && PreviousAimPitch != CurrentAimPitch)
{
	ServerRPCUpdateAimValue(CurrentAimPitch);
}

 

만약 로컬 클라이언트에서 PreviousAimPitch의 값과 CurrentAimPitch의 값이 같지 않으면 (바뀌었으면) ServerRPC를 호출하여 AimPitch값을 서버에서 변경.

'Unreal5 공부 > TIL' 카테고리의 다른 글

2026/07/06 TIL  (0) 2026.07.06
2026/07/02 TIL  (0) 2026.07.02
2026/06/22 TIL  (0) 2026.06.22
2026/06/18 TIL  (0) 2026.06.18
2026/06/17 TIL  (0) 2026.06.17

+ Recent posts