首先下载一些资源
GitHub - DruidMech/LearnCPPForUnrealEngineUnit2: Assets for the Unreal Engine Tutorial Series
下载这两个
导入素材
这里不要勾,然后导入所有
一个是模型,一个是材质
我们修改材质的颜色
模型就变黄了
模型拖入场景,并设为可移动
把坐标轴模型拖入场景,并设为可移动
坐标轴模型的位置设为0,0,0
我们把黄色物体的位置也设为0,0,0
---------------------------------------------------------------------------------------------------------------
目前,黄色物体在坐标轴原点
我们赋予该物体的x轴坐标为100,发现移动了一个大格子
------------------------------------------------------------------------------------------------
FVector结构体是最常用的结构体之一,存放三维向量
C++里可以在结构体内定义函数,用法和class定义类是一样的,说穿了struct 和 class用法相同,但要注意的一点是,struct默认的是public类型,然而class默认的是private类型的。
里面有三个变量
还有几个固定的向量
我们可以为漂浮者设置一个初始位置。
含义是向量的三个坐标全为0
我们向场景中拖入一个一号漂浮者(给了漂浮者一个球形网格)
运行游戏,发现漂浮者跑到了坐标原点
如果想在场景中来设置漂浮者的位置,我们可以这样做
创建一个变量,存放位置向量(图中那个变量的含义是只能在实例中编辑,在蓝图类里编辑不了)
在构造函数中初始化一下
开始游戏的时候直接用这个变量设置初始位置
编译运行游戏,发现实例中有这个变量了
现在z轴设为400,启动游戏
初始位置升高了400个单位
现在我们希望漂浮者的蓝图子类可以控制蓝图子类实例是否可以编辑初始位置。
我们先设置一个布尔变量,设置为蓝图内可编辑
在构造函数中进行初始化
在游戏开始函数中,编写逻辑 ,如果该布尔值是true,就用initialLocation设置初始位置,如果为false,就不设置初始位置。
现在测试一下。
打开蓝图
发现有这个布尔变量
我们将蓝图拖入场景
设置该实例的初始位置
现在是没有打勾,启动一下游戏
漂浮者子类对象并没有动
现在打上勾,漂浮者到了另外一个初始位置
现在设置漂浮者的漂浮功能
增加一个布尔变量,bShouldFloat,表示是否可以漂浮
构造函数将其初始化为false
增加一个向量变量initialDirection,代表漂浮方向
在构造函数中初始化为1,1,1
在每帧的函数里面增加一个位置偏移逻辑:如果可以漂浮,就开始向一个方向进行漂浮,不能漂浮,就静止不动
编译,测试
可以漂浮,测试成功。