건전한 건전지
728x90
반응형

 

Test.cpp

	UFUNCTION(Server, Unreliable)
	void ServerEquipButton();

처럼 RPC를 선언하고 

 

Test.cpp

void ServerEquipButton_Implementation()
{
	if(CombatComponent)
	{
		CombatComponent->EquipWeapon(OverlappingWeapon);
	}
}

void Equip()
{
	if(CombatComponent)
	{
		// 서버에서 동작했다면 바로 Equip을 실행하고
		if(HasAuthority())
		{
			CombatComponent->EquipWeapon(OverlappingWeapon);
		}
		// 클라이언트라면 RPC를 사용해 서버에게 알려준다.
		else
		{
			ServerEquipButton_Implementation();
		}
	}
}

 

와 같이 Implement함수를 정의하고 HasAuthority를 이용해 서버 - 클라이언트 실행부를 나누어서 실행하였지만 제대로 클라이언트에서 무기를 집었을 때 서버로 올바르게 전달이 되지 않았다.

 

이유는 RPC 함수에 함수명_Implementation()으로 정의는 하였지만, 호출해서 사용을 할 때엔 함수의 원형 이름을 불러주어야 하는 것이었다.

 

void ABlasterCharacter::Equip()
{
	if(CombatComponent)
	{
		// 서버에서 동작했다면 바로 Equip을 실행하고
		if(HasAuthority())
		{
			CombatComponent->EquipWeapon(OverlappingWeapon);
		}
		// 클라이언트라면 RPC를 사용해 서버에게 알려준다.
		else
		{
        	// 이렇게
			ServerEquipButton();
			// ServerEquipButton_Implementation();
		}
	}
}

 

기본적인건데 난 몰랐음 ㅜㅜ 근데 어쩌라고 지금부터 배우고 알았으면 됐지

728x90
반응형
profile

건전한 건전지

@건전한 건전지

나는 언리얼의 왕이 될 남자다 👑