02UE4 C++ 入门【场景空间和三维向量结构体FVector】

首先下载一些资源

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

 在每帧的函数里面增加一个位置偏移逻辑:如果可以漂浮,就开始向一个方向进行漂浮,不能漂浮,就静止不动

编译,测试

可以漂浮,测试成功。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无情的阅读机器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值