Configure character mesh transform defaults
This commit is contained in:
@@ -4,6 +4,8 @@ bEnableContextEffects=True
|
|||||||
DefaultMaxWalkSpeed=500.000000
|
DefaultMaxWalkSpeed=500.000000
|
||||||
DefaultSprintSpeed=650.000000
|
DefaultSprintSpeed=650.000000
|
||||||
DefaultMaxAcceleration=2048.000000
|
DefaultMaxAcceleration=2048.000000
|
||||||
|
DefaultMeshRelativeLocation=(X=0.000000,Y=0.000000,Z=-90.000000)
|
||||||
|
DefaultMeshRelativeRotation=(Pitch=0.000000,Yaw=-90.000000,Roll=0.000000)
|
||||||
DefaultInteractionOption=0
|
DefaultInteractionOption=0
|
||||||
DefaultPlayerCharacterClass="/Game/AGame/Character/Player/BP_PlayerBase.BP_PlayerBase_C"
|
DefaultPlayerCharacterClass="/Game/AGame/Character/Player/BP_PlayerBase.BP_PlayerBase_C"
|
||||||
DefaultAICharacterClass="/Game/AGame/Character/AI/BP_AIBase.BP_AIBase_C"
|
DefaultAICharacterClass="/Game/AGame/Character/AI/BP_AIBase.BP_AIBase_C"
|
||||||
|
|||||||
@@ -32,6 +32,13 @@ APHYCharacterBase::APHYCharacterBase(const FObjectInitializer& ObjectInitializer
|
|||||||
{
|
{
|
||||||
bReplicates = true;
|
bReplicates = true;
|
||||||
|
|
||||||
|
const UPHYCharacterSettings* CharacterSettings = GetDefault<UPHYCharacterSettings>();
|
||||||
|
if (USkeletalMeshComponent* SourceMeshComponent = GetMesh())
|
||||||
|
{
|
||||||
|
SourceMeshComponent->SetRelativeLocation(CharacterSettings ? CharacterSettings->DefaultMeshRelativeLocation : FVector(0.0f, 0.0f, -90.0f));
|
||||||
|
SourceMeshComponent->SetRelativeRotation(CharacterSettings ? CharacterSettings->DefaultMeshRelativeRotation : FRotator(0.0f, -90.0f, 0.0f));
|
||||||
|
}
|
||||||
|
|
||||||
CharacterStateComponent = CreateDefaultSubobject<UPHYCharacterStateComponent>(TEXT("CharacterStateComponent"));
|
CharacterStateComponent = CreateDefaultSubobject<UPHYCharacterStateComponent>(TEXT("CharacterStateComponent"));
|
||||||
CombatSystemComponent = CreateDefaultSubobject<UGCS_CombatSystemComponent>(TEXT("CombatSystemComponent"));
|
CombatSystemComponent = CreateDefaultSubobject<UGCS_CombatSystemComponent>(TEXT("CombatSystemComponent"));
|
||||||
TargetingSystemComponent = CreateDefaultSubobject<UGCS_TargetingSystemComponent>(TEXT("TargetingSystemComponent"));
|
TargetingSystemComponent = CreateDefaultSubobject<UGCS_TargetingSystemComponent>(TEXT("TargetingSystemComponent"));
|
||||||
@@ -80,6 +87,8 @@ APHYCharacterBase::APHYCharacterBase(const FObjectInitializer& ObjectInitializer
|
|||||||
|
|
||||||
DisplayMeshComponent = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("DisplayMeshComponent"));
|
DisplayMeshComponent = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("DisplayMeshComponent"));
|
||||||
DisplayMeshComponent->SetupAttachment(GetMesh());
|
DisplayMeshComponent->SetupAttachment(GetMesh());
|
||||||
|
DisplayMeshComponent->SetRelativeLocation(FVector::ZeroVector);
|
||||||
|
DisplayMeshComponent->SetRelativeRotation(FRotator::ZeroRotator);
|
||||||
DisplayMeshComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
DisplayMeshComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
||||||
DisplayMeshComponent->SetGenerateOverlapEvents(false);
|
DisplayMeshComponent->SetGenerateOverlapEvents(false);
|
||||||
}
|
}
|
||||||
@@ -618,6 +627,12 @@ void APHYCharacterBase::ApplyCharacterSettings()
|
|||||||
MoveComponent->MaxAcceleration = Settings->DefaultMaxAcceleration;
|
MoveComponent->MaxAcceleration = Settings->DefaultMaxAcceleration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (USkeletalMeshComponent* SourceMeshComponent = GetMesh())
|
||||||
|
{
|
||||||
|
SourceMeshComponent->SetRelativeLocation(Settings->DefaultMeshRelativeLocation);
|
||||||
|
SourceMeshComponent->SetRelativeRotation(Settings->DefaultMeshRelativeRotation);
|
||||||
|
}
|
||||||
|
|
||||||
if (CharacterStateComponent && GetCharacterMovement() && GetCharacterMovement()->IsFalling())
|
if (CharacterStateComponent && GetCharacterMovement() && GetCharacterMovement()->IsFalling())
|
||||||
{
|
{
|
||||||
CharacterStateComponent->SetMovementState(PHYGameplayTags::State_Movement_Falling);
|
CharacterStateComponent->SetMovementState(PHYGameplayTags::State_Movement_Falling);
|
||||||
|
|||||||
@@ -45,6 +45,14 @@ public:
|
|||||||
UPROPERTY(Config, EditDefaultsOnly, Category="PHY|Character")
|
UPROPERTY(Config, EditDefaultsOnly, Category="PHY|Character")
|
||||||
float DefaultMaxAcceleration = 2048.0f;
|
float DefaultMaxAcceleration = 2048.0f;
|
||||||
|
|
||||||
|
/** @brief 角色源 Mesh 相对 Capsule 的默认位置。 */
|
||||||
|
UPROPERTY(Config, EditDefaultsOnly, Category="PHY|Character|Mesh")
|
||||||
|
FVector DefaultMeshRelativeLocation = FVector(0.0f, 0.0f, -90.0f);
|
||||||
|
|
||||||
|
/** @brief 角色源 Mesh 相对 Capsule 的默认旋转。 */
|
||||||
|
UPROPERTY(Config, EditDefaultsOnly, Category="PHY|Character|Mesh")
|
||||||
|
FRotator DefaultMeshRelativeRotation = FRotator(0.0f, -90.0f, 0.0f);
|
||||||
|
|
||||||
/** @brief 默认交互选项索引。 */
|
/** @brief 默认交互选项索引。 */
|
||||||
UPROPERTY(Config, EditDefaultsOnly, Category="PHY|Character")
|
UPROPERTY(Config, EditDefaultsOnly, Category="PHY|Character")
|
||||||
int32 DefaultInteractionOption = 0;
|
int32 DefaultInteractionOption = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user