UE5 C++编程学习笔记

工程

 项目可删除路径(Generate project files时会自动生成):

编辑器

操作Tips:

游戏视角GameView(快捷键G):切换游戏模式预览(不显示Gizmos),可方便截图,预览游戏效果等.

视角书签BookMark:Ctrl+数字键设置书签,Shift+数字键清除书签,数字键跳转书签.

两种编译方式:

1.退出UE,VS中执行(Ctrl+F5),将编译并启动UE。

2.UE编辑器中LiveCoding。

C++

符号:

  • 用于访问类或结构体的成员函数和成员变量。
  • ::    用于访问全局变量、全局函数或者类的静态成员。
  • -> 用于通过指针访问类或结构体的成员函数和成员变量。
#include <iostream>

class MyClass {
public:
    int myVar;
    static int staticVar;

    void myFunction() {
    }

    static void staticFunction() {
    }
};

int MyClass::staticVar = 0;

void globalFunction() {
}

int main() {
    MyClass obj;
    MyClass *pObj = new MyClass();

    obj.myVar = 10; // 访问成员变量
    obj.myFunction(); // 调用成员函数

    MyClass::staticVar = 20; // 访问类的静态成员变量
    MyClass::staticFunction(); // 调用类的静态成员函数

    globalFunction(); // 调用全局函数

    pObj->myVar = 30; // 通过指针访问成员变量
    pObj->myFunction(); // 通过指针调用成员函数

    delete pObj;

    return 0;
}

Acter

UPROPERTY参数:

设置类别:Category="类别"

私有属性访问:meta =(AllowPrivateAccess ="true")

UFUNCTION:

有执行线的蓝图函数: BlueprintCallable

没有执行线的蓝图纯函数:BlueprintPure

泛型函数:

template<typename T>T 
Avg(T First,T Second);

构造函数

Pawn

Input使用:

void ABird::SetupPlaverInputComponent(UInputcomponent PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputcomponent);
    PlayerInputComponent->BindAxis(FName("MoveForward"),this,&ABird::MoveForward);
}

void ABird::MoveForward(float Value){
    if(controller &&(Value != 0.f)){
        FVector Forward= GetActorForwardVector();
        AddMovementInput(Forward, Value);
    }
}

Controller旋转:

  • 俯仰角:AddControllerPitchinput(Value),启用Use Controller Rotation Piteh

  • 滚转角:AddControllerRolllnput(Value),启用Use Controller Rotation Yaw

  • 偏航角:AddControllerYawinput(Value),启用Use Controller Rotation Roll

  • 获取Controller方向向量:

//获取Controller旋转
const FRotator ControlRotation=GetControlRotation();
const FRotator YawRotation(0.f, ControlRotation.Yaw, 0.f);
//获取方向向量
const FVector Direction = FRotationMatrix(YawRotation).GetUnitAxis(EAxis: :X);

相机使用

可以先添加SpringArm,再添加Camera,优点:

  • TargetArmLength可以设置相机跟随远近,可在第三人称和第一人称之间切换
  • SpringArm自带碰撞检测,遇到遮挡时,可以自动根据碰撞伸缩
  • 设置UsePawnControllerRotation=true,可控制相机使用Controller的旋转围绕Pawn做第三人称旋转。

Pawn生成

1.放置Pawn到场景中,未替换DefaultPawnClass

  • 场景中将产生DefaultPawn
  • 设置AutoProcessPlayer为Player后,可控制Pawn
  • 开放世界模式中,Pawn只在附近时加载

2.设置GameMode->DefaultPawnClass,将替换默认生成的Pawn,并不放置Pawn到场景中,在场景中任意位置启动,都将在启动位置生成替换的Pawn。

3.将PawnStart到场景中,任何时候启动都将在PawnStart处生成Pawn。

Character

  • 自带Capsule(Root节点),Arrow,Mesh(Skeletal Mesh),Character Movement。
  • UGroomComponent(用于制作头发、眉毛等),需要在<Project>.Bulid.CS的PublicDependencyModuleNames中加入HairStrandsCore模块;
  • 每次在<Project>.Bulid.CS加入新模块,都需要Regenerate Visual Studio project files。

其它

设置CollisionPresets可以设置碰撞层级.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值