Now, my problem is ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
for example, Server, Client1, Client2
Client1 can see Server’s AnimMontage
But Server can’t see Client1’s AnimMontage
And also, Client2 can’t see Client1’s AnimMontage
MyCharacter.h
{
…
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, replicated)
UAnimMontage* AttackMontage;
UFUNCTION(Server ,Reliable, WithValidation)
void InvokeAttack();//when player click mouse left, executing this function
void InvokeAttack_Implementation();
bool InvokeAttack_Validate();
…
}
MyCharacter.cpp
AMyCharacter::AMyCharacter()
{
…
static ConstructorHelpers::FObjectFinderATTACK_MONTAGE(TEXT(“/Game/AttackTest.AttackTest”));
if (ATTACK_MONTAGE.Succeeded())
{
AttackMontage = ATTACK_MONTAGE.Object;
}
//Setting a AnimMontage
bReplicates = true;
…
}
void AMyCharacter::GetLifetimeReplicatedProps(TArray & OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
...........
DOREPLIFETIME(AMyCharacter, AttackMontage );
}
void AMyCharacter::InvokeAttack_Implementation()
{
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("ATTACK"));
PlayAnimMontage(AttackMontage , 1.0f, NAME_None);
}
bool AMyCharacter::InvokeAttack_Validate()
{
return true;
}