欢迎光临散文网 会员登陆 & 注册

斯坦福UE4C++课程P3-P4

2022-10-22 17:06 作者:_Hide-on-bush_  | 我要投稿

新建SCharacter的C++类,继承自ACharacter

注意事项:C++character.h保证所有添加的头文件在生成文件.generated.h上方

虚幻引擎自动给C++类添加前缀:

  • U:从UObject继承

  • A:从Actor类继承

  • F:结构体Structs

  • E:枚举Enums

  • I:接口Interfaces

VS里ctrl+f5编译后,将打开UE编辑器,创建的C++类显示在内容浏览器中。

新建蓝图类,选择继承自前面创建的SCharacter类。

左侧有若干组件:

  • CapsuleComponent(Inherited):处理碰撞collision和移动movement

    • ArrowComponent(Ingerited):显示人物方向

    • Mesh(Inherited):人物的网格体

  • CharacterMovement(Inherited):关于人物移动的C++组件,2000行代码

最简单的把上面蓝图类作为可控角色的方法是,把蓝图类拖入视口中,删除已有的角色出生点,右下侧搜索poss,设置Auto Possess player为player0。

此法最终不会被使用,但是对debug很有用。

点击左上file,save all levels存储关卡。

为SCharacter角色添加摄像机组件

在SCharacter.cpp下添加头文件

在SCharacter.h的protected下添加弹簧臂组件和相机组件

在SCharacter.cpp文件的构造函数下添加

ctrl+f5编译,蓝图类组件多了上面创建的弹簧臂和相机,但右侧细节为空白的,因为默认设置为蓝图不可见。

介绍虚幻引擎的资产系统(Unreal Property System):

  • UPROPERTY, UFUNCTION, UCLASS, USTRUCT, UENUM(Unreal Macros)

    • 控制编辑器editor蓝图blueprint访问、网络行为(多玩家情况下)。

    • 实际上被用于追踪指针和一个对象的内存,建立若干链接。

    • 是虚幻引擎提供的样板文件

使用方法类似下方:

使得弹簧臂和相机组件中的变量在编辑器editor和蓝图blueprint中均可见。

现在编译,回到蓝图类,发现弹簧臂和相机组件的details面板处可以看到所有属性。

tips:SetupAttachment函数把弹簧臂设置到根组件RootComponent,把相机设置到弹簧臂SpringArmComp,使得相机跟随弹簧臂而运动。

弹簧臂作用是当有物体挡在相机和角色中间时,把相机拉近到物体,使得角色可见。


斯坦福UE4C++课程P3-P4的评论 (共 条)

分享到微博请遵守国家法律