Files
Crunch/Source/Crunch/Public/Animations/CAnimInstance.h
2025-06-17 19:29:52 +08:00

65 lines
1.9 KiB
C++

// Multiplayer By Caleb
#pragma once
#include "CoreMinimal.h"
#include "Animation/AnimInstance.h"
#include "CAnimInstance.generated.h"
/**
*
*/
UCLASS()
class CRUNCH_API UCAnimInstance : public UAnimInstance
{
GENERATED_BODY()
public:
virtual void NativeInitializeAnimation() override;
virtual void NativeUpdateAnimation(float DeltaSeconds) override;
virtual void NativeThreadSafeUpdateAnimation(float DeltaSeconds) override;
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE float GetSpeed() const { return Speed; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE bool IsMoving() const { return Speed != 0; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE bool IsNotMoving() const { return Speed == 0; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE float GetYawSpeed() const { return YawSpeed; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE float GetSmoothedYaw() const { return SmoothedYawSpeed; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE bool GetIsJumping() const { return bIsJumping; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE bool IsOnGround() const { return !bIsJumping; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE float GetLookYawOffset() const { return LookRotOffset.Yaw; }
UFUNCTION(BlueprintCallable, meta=(BlueprintThreadSafe))
FORCEINLINE float GetLookPitchOffset() const { return LookRotOffset.Pitch; }
private:
UPROPERTY()
class ACharacter* OwnerCharacter;
UPROPERTY()
class UCharacterMovementComponent* OwnerMovementComp;
UPROPERTY()
float Speed{0.f};
float YawSpeed{0.f};
float SmoothedYawSpeed{0.f};
bool bIsJumping{false};
UPROPERTY(EditAnywhere, Category="Animation")
float YawSpeedSmoothLerpSpeed{1.f};
FRotator BodyPrevRot{};
FRotator LookRotOffset{};
};