Replicated

[ChronoSpace] Gravity Tower Replication 본문

언리얼 엔진/ChronoSpace

[ChronoSpace] Gravity Tower Replication

라구넹 2025. 3. 6. 20:50

일단 중력 반전 스위치로 반전 시켰을 때 반전이 안됨

클라이언트에서 스위치 색도 안바뀜

RPC 처리해야 할 듯

 

UFUNCTION(NetMulticast, Reliable)
void NetMulticastSetGravity(ACharacter* Char, FVector Gravity);

void ACSGravitySwitch::NetMulticastSetGravity_Implementation(ACharacter* Char, FVector Gravity)
{
	Char->GetCharacterMovement()->SetGravityDirection(Gravity);
}

중력 세팅을 RPC 멀티캐스트

근데 보니까 메테리얼 변경도 동기화 안됐음

 

void SetMaterial();

UFUNCTION(NetMulticast, Reliable)
void NetMulticastSetMaterial(bool bInIsInteracted);

void ACSSwitchBase::SetMaterial()
{
	NetMulticastSetMaterial(bIsInteracted);
}

void ACSSwitchBase::NetMulticastSetMaterial_Implementation(bool bInIsInteracted)
{
	bIsInteracted = bInIsInteracted;
	//UE_LOG(LogCS, Log, TEXT("[NetMode : %d] NetMulticastSetMaterial_Implementation, %d"), GetWorld()->GetNetMode(), bIsInteracted);
	if (bIsInteracted)
	{
		StaticMeshComp->SetMaterial(1, MaterialSolidInteracted);
		StaticMeshComp->SetMaterial(3, MaterialGlowInteracted);
	}
	else
	{
		StaticMeshComp->SetMaterial(1, MaterialSolidNonInteracted);
		StaticMeshComp->SetMaterial(3, MaterialGlowNonInteracted);
	}
}

RPC로 서버의 bIsInteracted 값을 전달하고 메테리얼을 세팅하도록 함

이제 정상 작동함