开篇引言
看完上期虚幻5视频,是否意犹未尽或困惑?别担心,本期拆解逻辑,让您豁然开朗。
本期重点:
- 深入理解向量概念
- 掌握蓝图节点工作原理
- 理解面向对象编程核心思想
第一章:向量的奥秘
为方便理解,先讲纯粹数学概念——向量。
什么是向量?
高中数学说,是兼具大小和方向的量。
虚幻中常用三维向量,对应X、Y、Z坐标轴。
三维向量表示:
Vector3(x, y, z)
- X轴:左右方向
- Y轴:前后方向
- Z轴:上下方向
单位向量的重要性
记得上期用"获取Actor向前向量"控子弹方向吗?
调用"获取Actor向前向量",得到特殊向量:方向向前,大小恒为1。这叫"单位向量"。
单位向量特点:
- 长度为1(标准化)
- 仅表示方向
- 常用于计算移动方向
三维向量演示
(三维向量演示动画)
// 获取Actor的向前向量
FVector ForwardVector = GetActorForwardVector();
// 结果:(1, 0, 0) - 沿X轴正方向
第二章:蓝图节点规则
接下来看蓝图节点规则。
输入与输出
蓝图节点左侧是输入,右侧是输出。
以加法节点为例:
左侧输入:A、B(相加数值)
右侧输出:Result(计算总和)
数据流规则
蓝图节点可无数据输入,但必须有输出,否则逻辑无法延续,无意义。
重要原则:
- 每个节点必须有明确的输出
- 数据流从左到右流动
- 执行流从上到下执行
第三章:面向对象编程核心
讲完向量和蓝图节点,再聊核心概念:类。
上期提到但不够具体。这是"面向对象编程"基石。
创世比喻理解
用创世比喻理解:您是创世神,要在空世界创造生命。
需创造万千生物,设计每种的形态和习性,工作量大。
聪明的解决方案:
先提炼共性:归纳生命体共有特征为"生物"模板。
在此基础上,从"生物"提取能动、有感觉的特征,归纳为"动物"类。
再细分出"犬科""猫科"等。
类与对象的关系
这种层层归纳、继承和细化,是面向对象核心。
程序世界里,这些"模板"或"设计图"就是类。
类的构成:
- 属性(数据)
- 行为(方法/函数)
通过类创造的具体生物,是对象或实例。
现在明白程序运行时,操作的是一个个"对象"。
Self关键字的理解
上期说"获取Actor向前向量"左侧传入角色本身,Self代指"角色"这个对象。
它告诉节点:"请获取我自己的向前向量。"
// 伪代码示例
dog = Dog() // 创建狗对象
dog.bark() // 调用自己的行为
实例演示
举个例子:"狗"类有"汪汪叫"的行为。
// 狗自己想叫时,行为是内在、自发的
self.bark() // self指代狗对象自身
// 主人想让它叫时,需先明确"哪只狗",再命令
my_dog = Dog() // 先根据"狗"这个类,创造一只具体的狗
my_dog.bark() // 主人通过引用,命令这只特定的狗去叫
关键区别:
- Self:对象内部调用自己的行为
- 实例引用:外部对象调用特定实例的行为
总结与展望
通过本期学习,我们深入理解了:
- 向量在虚幻引擎中的重要作用
- 蓝图节点的工作原理和数据流向
- 面向对象编程的核心思想和实际应用
下一步学习建议:
- 实践使用向量控制游戏对象移动
- 尝试创建自己的蓝图节点
- 设计简单的类结构来实现游戏功能