类
类的层次
Object 类
所有的虚幻object的基类
Actor类
能放在世界里,且能够生成的
Pawn类
能够被玩家或者AI控制的类
Character类
能够走,也就包含运动组件
他们前后属于继承的关系
类的前缀
u
由这个UObject继承而来
A
由这个Actor继承而来
F
结构体
E
枚举类型
I
接口类型
标记
UPROPERT,UFUNCTION,UCLASS,USTRUCT,UENUM
作用:
- 让编辑器和蓝图访问
- 网络行为(多玩家)
- 内存管理
ex:
UPROPERTY(VisibleAnywhere,Category="Camera")
UCameraComponent* CameraComp;
UPROPERTY(VisibleAnywhere,Category="Camera")
USpringArmComponent*SpringArmComp;
PS.这个可见是指的是让这个组件的属性在编辑器或者蓝图细节面板可以看见
输入
通过键值的映射进行输入
步骤:
先理解过程,这个过程其实,当玩家按下了一个按键,然后传入到程序,这个按下的键携带着值,通过这个值修改程序中的actor位置。
- 绑定按键,操作名,这个名字会在程序中使用
- 在程序中,给这按键赋予操作,映射到程序中的函数
Controller
不可见,由玩家和AI共享。
- 一个玩家一个controller,并且他拥有一个旋转控制,和pawn的旋转相分离
- pawn死了controller也会存在
ex:
第三人称的旋转用控制器的旋转,也就是摄像机,控制器到哪摄像机跟到哪?。整个pawn不应该用控制器控制
今日小结
总结
- 完成了第三人称的角色移动,视角切换创建。会利用按键或者鼠标控制角色的移动。
- 对于基本的物理的碰撞有了基本的了解。如何控制actor之间的碰撞处理。
难点
- 在角色的旋转控制的时候,啥时候pawn,啥时候controller??第三人称最为难受,套模板。
- 碰撞文件预设,关注这个对象本身的类型(是静态、动态等),基本利用基本的经验就能判断。