# 蓝图入门
# 变量类型
蓝图中的类型有:
- Bool
- Byte,相当于typedef unsigned char uint8,可常用于存储颜色。
- Integer
- Float
- Name
- String,常用操作有:
- Append
- BuildString
- Text
- Vector,常用来表示位置和比例
- Rotator,常用来表示旋转角度
- Transform
# 字符串操作
- RightPad,LeftPad:指定一共多少字符数,如果原字符串不够则填充空格来满足字符数。
- RightChop,LeftChop:从左往右数,去掉左边的字符数;从右往左数,去掉右边的字符数。
- Right,Left:从右边往左边数;或从左边往右边数,保留几个字符。
- replace in line:返回在哪替换掉的字符串
- replace:返回被替换的字符串
- ParseIntoArray:切割成一个数组
- JoinStringArray:合并成一个字符串
- GetCharacterArrayFromString:将字符串中字符放到一个数组
- FindSubstring:查找某个子字符串的位置
- Contains:包含某个字符串
- Append:组合字符串
- BuildString:构建字符串
# 相似类型
String,Name,Text比较相近,它们的区别为:
- FString代表了一种动态的字符串类型数组。
- FName一旦确定变不会改变,大小写不敏感,它更小且更有效来表示物体的名称,但是不能操作。
- FText是一种能够本地化的字符串。注意FText没有大小写的,从FName到FText会失真。
注意:
- 在蓝图节点中可用Format String格式字符串:"{HPValue},MP:{MPValue}"。
- 它们都可从String Table中获取值,来本地化显示。
- 如果只是临时使用字符串,可使用蓝图节点,make literal name。
- 在蓝图中最常用的肯定是PrintString,用来输出调试信息。Text类型也有Print Text。
# 常用数据结构类型
# 数组
数组常用操作有:
- Get
- SetArrayItem
- Length
- Add
- AddUnique
- Insert
- Remove
- RemoveIndex
- Find
- Contains
- LastIndex
- Clear
- Resize
- Shuffle:打乱数组
# 结构体
结构体常用来表示一组类型不同的数组,常用操作有:
- MakeStruct
- BreakStruct
- SetMembersInStruct
# 流程控制
用于流程控制的节点有:
- Delay:延时,相当于C++中的sleep
- RetriggerableDelay:在延时内触发的话会重新计算延时
- Branch:if分支
- DoOnce:只执行一次,可被重置
- DoOnceMultiInput:只执行一次,有多个输入,可被重置
- DoN:执行N次,可被重置
- Sequence:按顺序执行Then 0,1,2...
- FlipFlop:翻转切换
- Gate:可以打开关闭的门
- MultiGate:从StartIndex开始,后面会随机输出其中一个
- ForEachLoop:循环遍历数组
- ForEachLoopWithBreak:循环遍历数组,并且能break
- WhileLoop:相当于while循环
- ForLoop:相当于for循环
# Actor信息
常用于获取Actor的Transform信息:
- GetActorLocation
- GetActorScale3D
- GetActorRotation
如果找一个点到另一个点的相对坐标,或者是世界坐标,可用:
- TransformLocation:从本地转向世界坐标
- InverseTransformLocation:从世界转回本地坐标
在UE4编辑器中,使用鼠标旋转物体,内部是四元数完成的,但是如果是在面板控制角度旋转,它内部以欧拉角来计算,会出现万向节死锁。
# 示例场景
# 芝麻开门
人物碰到碰撞体时开门,离开后关门。RockDoor,下面是实现细节:
# 随机选择材质
下面是给一堆box随机选择材质例子: