• UE5 C++ 斯坦福 1


    Class Hierarchy (类的层次结构)

    • Object 所有虚幻实例(UObject)的基类
    • √ Actor 可以被放置或生成在世界中的Object
    • √ √ Pawn 可以被玩家或AI控制的Actor
    • √ √ √ Character 包含步行移动组件的Pawn
    • √ √ √ √ *Character 我们继承重写的C++类

    Class Prefixes (类的前缀)

    虚幻引擎需要类始终保持前缀

    • U - 派生自UObject的类
    • A - 派生自Actor的类
    • F - 结构体
    • E - 枚举
    • I - 接口

    BeginPlay

    在Character刚被加载的时候首先调用
    如果它被执行,那么它已经被完全加载,完全初始化,这是我们可以信赖的第一件事。

    Tick

    每一帧都会被调用,也传递了一个delta时间访问

    相机组件

    UCameraComponent

    弹簧臂组件

    USpringArmComponent

    创建实例

    CreateDefaultSubobject<CLASSNAME>(“TABNAME”)
    其中CLASSNAME是实例的类型,TABNAME是它在编辑器中显示的名字

    数据视图与完整蓝图编辑器

    数据视图很难读懂正在发生的事情
    蓝图读起来比较快

    C++层暴露组件,适当的显示出细节面板

    设置弹簧臂正确的附着

    弹簧臂 SetupAttachment(RootComponent)

    RootComponent是层次结构中的第一个组件

    设置相机正确的附着

    相机 SetupAttachment(弹簧臂)

    相机安装在弹簧臂上

    因为我们想要角色和相机之间有一定的距离

    Unreal Property System (虚幻资产系统)

    UPROPERTY,UFUNCTION,UCLASS,USTRUCT,UENUM(Unreal Macros 虚幻宏)

    标记C++类,用于像编辑这样的事情,蓝图访问,甚至对于网络行为。

    定义你的代码应该在哪里运行,服务器还是在本地客户机上。

    而且也是为了内存管理,将会用于追踪指针和一个对象的内存,

    比如

    UProperty(VisibleAnywhere) //它将在任何地方可见
    
    • 1

    玩家输入组件

    void AMainCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
    {
    	Super::SetupPlayerInputComponent(PlayerInputComponent);
    	// 加两个输入事件控制相机
    	// 轴运算
    	PlayerInputComponent -> BindAxis("LookRight", this,&AMainCharacter::AddControllerYawInput);
    	PlayerInputComponent -> BindAxis("LookForward", this,&AMainCharacter::AddControllerPitchInput);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    我们其实有两个选择,BindAction和BindAxis
    在目前我们对绑定轴感兴趣,因为希望能够移动前进和倒退。

    我们可以联想一下,输入设备是GamePad的情况,拇指杆滑动,会在-1到1的区间里变化。

    在输入设备是键盘的情况下,它仅仅是按下Key和松开Key的问题(0,1 二值)。

    BindAxis 参数 (名称,接收输入对象,想要触发的函数)
    触发委托之后,会把名称传递给接收输入对象,传递一个需要被触发的函数

    移动函数

    Character已经封装了一些函数,
    我们只需要说出往哪个方向走

    目前只需要前后左右四个方向,就可以用函数直接获取。
    再传递一个value 是一个-1到1的值

    AddMovementInput(GetActorForwardVector(),value);
    
    • 1

    绑定一个键

    打开编辑器的项目设置,输入,绑定

    旋转函数

    直接使用Pawn中提供的函数即可

    APawn::AddControllerYawInput

    在VS2019 IDE中 可以直接Ctrl+鼠标左键,跳转到对应函数,查看源码。

    虚幻引擎的一个问题是,它有800万行的代码,检索代码是很慢的

    此处包含pitch、yaw、roll等知识点

    Yaw 指的是水平旋转,pitch 指的是垂直旋转,roll 未知

  • 相关阅读:
    G120变频器输入输出端子功能定义配置方法及示例
    gorm 修改事务维度的隔离级别
    R语言使用caret包的preProcess函数进行数据填充、使用K近邻KNN算法进行缺失值填充
    大模型在智能家居领域的应用与挑战
    matlab图像仿射变换
    Node.js的入门及模块化
    五、鼎捷T100生产管理之报工
    pcl基于最小切割的点云分割
    学习笔记——指针!
    Docker容器:compose容器编排
  • 原文地址:https://blog.csdn.net/AiTanXiing/article/details/126267365