一. 面向对象编程概述
1. 面向过程编程
2. 面向对象编程
a. 什么是对象
b. 什么是类
二. 类的继承
1. 属性和方法的继承
属性和方法的继承可以使得属性和方法具备重用性。
在蓝图中可以勾选并显示从父类中继承来的属性和方法。
2. 蓝图类的常用父类
a. Actor 可以放入世界或者程序生成的对象类型
b. Pawn 可以被控制器输入进行控制的角色类型,父类为Actor。
c. Character 父类为Pawn,增加了走动的能力。
d. Player Controller 玩家控制器,是负责控制玩家使用角色的控制器类型
e. Game Mode 游戏模式,定义游戏如何进行,包括游戏规则,积分规则等
f. Actor Component 角色组件,可以重用的组件,可以被加到任意一个角色上
g. Scene Component 场景组件,可以重用的场景组件,可以被加到任意一个场景中
3. 蓝图类的继承使用
a. 创建一个新的蓝图类NewBlueprint1,继承Actor,创建一个bool类型变量MyBool
b. 创建一个新的蓝图类NewBlueprint2,继承NewBlueprint1,在NewBlueprint2中查看MyBool
c. 继承得来的属性和方法仅能够使用或覆盖,并不能够删除。
三. 创建一个石门的蓝图类
1. 在文件夹中创建蓝图类RockDoor,继承Actor。
2. 双击打开RockDoor蓝图类,添加一个Scene组件替换掉默认的根组件,并且命名为Root。
3. 添加一个Static Mash 组件命名为Rock1,选取材质为SM_Rock,这个材质在初学者内容中存储。
4. 再次添加一个Static Mash 组件命名为Rock2,选取材质为SM_Rock。
5. 调整Rock1和Rock2的位置和角度,做成一对石门。
6. 为石门材质添加碰撞 选择 StarterContent -> Props -> SM_Rock, 双击打开编辑器,菜单中选择碰撞 -> add 一种适合的碰撞
四. 为RockDoor蓝图类创建感应开关功能
1. 在蓝图类视口中添加一个Box Collision(盒体碰撞触发体)组件,命名为DoorTrigger,修改一下位置和大小,让它位于石门的正前方。
2. 添加时间轴命名为MoveRock,添加一条Float轨迹DoorAlpha,长度为2秒。添加两个时间点(0,0)和(2,1),并选择曲线为auto。
3. 添加盒体碰撞触发体组件的OnComponentBeginOverlap节点(进入碰撞体进行触发)并连接时间轴的Play接口。
a. OverlappedComponent 触发体
b. Other Actor 谁触发的交互
c. Other Comp 触发交互的组件
d. Other Body Index -1
e. From Sweep 当前交互是否来自于碰撞
f. Sweep Result 碰撞后的信息对象
4. 添加盒体碰撞触发体组件的OnComponentEndOverlap节点(离开碰撞体进行触发)并连接时间轴的Reverse接口。
5. 在RockDoor蓝图类的组件中将Rock1和Rock2的引用拖拽至蓝图类的事件图表中,并引出SetRelativeLocation节点(设置相对位移)。
6. 添加Lerp节点,将时间轴MoveRock的Door Alpha赋值给Lerp节点的Alpha并设置A、B的值(位移从A移动到B),添加MakeVector节点,设置x=0,z=0,y=Lerp的ReturnValue。将该Vector赋值给SetRelativeLocation的New Location属性。
7. 在时间轴MoveRock中Update节点引出一个序列(Sequence),序列一指向Rock1的SetRelativeLocation,序列二指向Rock2的SetRelaticeLocation。
五. 添加火焰的粒子效果
1. 在蓝图类编辑器中添加ParticleSystem (粒子)组件,命名为Fire。
2. 在Particles 的 Template 中 选择 P_Fire,调整位置。
3. 在视口左上角的下拉箭头中Realtime代表允许在蓝图类视口中观看运行效果。
4. 拖动Fire到蓝图类的事件图表中,引出Set Active节点,通过设置New Active=false来熄灭火焰效果,也可以设置New Active=true来启动火焰效果。
版权声明:本文为CSDN博主「幽冥丶虾米」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_14930205/article/details/78561660