438人加入学习
(0人评价)
虚幻5 UE5.4零基础小白入门教程C++版-2025最新版

制作完成于 2025年2月8日 使用虚幻引擎5.4 版本5.4.4,VisualStudio2022

价格 免费

#include "InputActionValue.h"
 

protected:

    //声明移动和视角移动的函数,并且有个Value常量

    vo id Move(const FInputActionValue& Value);
    void Look(const FInputActionValue& Value);

 

 


void AMyPlayer::Move(const FInputActionValue& Value)
{
    //获取Velue里面的一个2D值并且赋予给MovementVector
    FVector2D MovementVector = Value.Get<FVector2D>();

    if (Controller!=nullptr)
    {
        const FRotator Rotation = Controller->GetControlRotation();
        //点头pitch ,摇头Yaw.偏头row.
        const FRotator YawRotation(0,0,Rotation.Yaw);

        //获取前后左右向量
        const FVector ForwardDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X);
        const FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y);

        //添加移动输入
        AddMovementInput(ForwardDirection,MovementVector.X);
        AddMovementInput(RightDirection, MovementVector.Y);


    }

}

 

 

 


 

[展开全文]

class UInputMappingContext;

class UInputAction;
 

[展开全文]

//TObjectPtr<UCameraComponent>Camera;

GEngine->AddOnScreenDebugMessage();

UE_LOG();

[展开全文]

class USpringArmComponent;

private:

UPROPERTY(EditAnywhere,BluepringReadOnly,Category = Camera, meta = (AllowPrivateAcces = "true"))

USpringArmComponent* CameraBoom;

#include "GameFramework/SpringArmComponent.h"

 

CameraBoom = CreateDefaultSubobject<USprintArmComponent>("CameraBoom")

CameraBoom->SetupAttachment(RootComponent);

 

Class UCameraComponent;

UCameraComponent* Camera;

 

#include "Camera/CameraComponent.h"

Camera = CreateDefaultSubobject<UCameraComponent>("Camera")

 

Camera->SetupAttachment(CameraBoom);

 

CameraBoom->TargetArmLength = 500.f

 

CameraBoom->SetRelativeRotation(FRotator(0.f ,-30.f, 0.f))

 

 

 

 

[展开全文]

BlueprintImplementableEvent

void Event_MyAttack();

 

Category:分类显示

 

Meta: 设置元数据

 

Server、Client:用于网络功能的

 

 

BlueprintNativeEvent:原生蓝图事件,需要在c++里面写内容,和implementable功能一样

 

[展开全文]

 

public

\\UFUNCTION()

\\BlueprintCallable 蓝图调用:可以。

\\BlueprintPure 声明一个纯函数

\\BlueprintImplementableEvent:声明该函数为蓝图可实现事件,在蓝图中可以实现该事件的逻辑

UFUNCTION(BluePrintCallable)

void ReducePlayerHealth();

 

 

在.cpp文件里面调用一下这个函数

void AMyPlayer::ReducePlayerHealth(){}

 

UE_LOG(LogTemp,Warning,TEXT("大家都是帅哥美女"));

 

 

UFUNCTION(BlueprintPure)

Bool IsSuccessful();

.cpp文件里面

bool AMyPlaer::IsSuccessful(){

return true;

}

[展开全文]


    //VisibleAnywhere:主:显示。蓝图:显示,编辑:否
    //VisibleDefaultOnly:主:不显示。蓝图:显示,编辑:否
    //EditDefaultsOnly:主:不显示。蓝图:显示。编辑:是
    //EditAnywhere:主:显示。蓝图:显示。编辑:是
    //EditInstanceOnly:蓝图:不显示。实例化后:主可编辑。
    //BlueprintReadWrite:蓝图:读写。
    // BlueprintReadOnly:蓝图:只读
    //Category:指定分类
    //Meta:元数据   , meta = (AllowPrivateAccess = "true")  在蓝图中可以被访问到
private:
    UPROPERTY(EditAnywhere, Category = "State|Health", meta = (AllowPrivateAccess = "true"))
        float MyHealth;

[展开全文]

AllowPrivateAccess = "true"的作用:private变量添加BlueprintReadWrite或者BlueprintReadOnly会出现编译错误

添加AllowPrivateAccess,不会出现编译错误,但在蓝图中会变成public变量

[展开全文]

授课教师

SiKi学院老师

课程特色

视频(33)
下载资料(1)