指令参数解析工具
概述
BlueprintConsoleCommandParser 是一个强大的参数解析工具,帮助您轻松解析和转换控制台命令参数为各种数据类型。
功能特性
✅ 多种数据类型支持: Int, Float, Bool, String, Vector, Rotator ✅ 智能类型转换: 自动验证和转换数据类型 ✅ 命名参数: 支持 key=value 格式 ✅ 引号支持: 正确处理带空格的字符串 ✅ 默认值: 所有函数都支持默认值 ✅ 批量解析: 一次性解析多个参数
基础用法(步进指南)
解析单个参数
获取字符串参数
蓝图节点流程:
Parameters (String) → Get Parameter (Index: 0) → Result (String)
示例:
输入: "hello world test"
Index: 0 → "hello"
Index: 1 → "world"
Index: 2 → "test"获取整数参数
Parameters → Get Parameter As Int (Index: 0, Default: 0) → Result (Int)
示例:
输入: "123 456 789"
Index: 0 → 123
Index: 1 → 456
Index: 2 → 789获取浮点数参数
Parameters → Get Parameter As Float (Index: 0, Default: 0.0) → Result (Float)
示例:
输入: "3.14 2.5 100.5"
Index: 0 → 3.14
Index: 1 → 2.5
Index: 2 → 100.5获取布尔值参数
Parameters → Get Parameter As Bool (Index: 0, Default: false) → Result (Bool)
支持的格式:
true/false → True/False
1/0 → True/False
yes/no → True/False
on/off → True/False
示例:
输入: "true yes 1 on"
Index: 0 → true
Index: 1 → true
Index: 2 → true
Index: 3 → true解析向量和旋转
向量 - 逗号分隔格式
Parameters → Get Parameter As Vector (Start Index: 0) → Result (Vector)
示例:
输入: "100,200,300"
结果: Vector(100, 200, 300)向量 - 空格分隔格式
示例:
输入: "100 200 300"
结果: Vector(100, 200, 300)旋转器
Parameters → Get Parameter As Rotator (Start Index: 0) → Result (Rotator)
示例:
输入: "90,45,0"
结果: Rotator(Pitch=90, Yaw=45, Roll=0)
输入: "90 45 0"
结果: Rotator(Pitch=90, Yaw=45, Roll=0)命名参数
解析命名参数
Parameters → Parse Named Parameters → Result (Map<String, String>)
示例:
输入: "name=Player health=100 speed=5.5 active=true"
结果:
{
"name": "Player",
"health": "100",
"speed": "5.5",
"active": "true"
}获取命名参数值
Named Parameters → Get Named Parameter (Key: "name") → Result (String)
示例:
输入参数: name=Player health=100
Key: "name" → "Player"
Key: "health" → "100"获取命名参数为整数
Named Parameters → Get Named Parameter As Int (Key: "health", Default: 100) → Result (Int)
示例:
输入参数: health=150 level=5
Key: "health" → 150
Key: "level" → 5完整蓝图示例(示例集合)
示例 2: 设置玩家属性命令
命令格式: setprop health=100 speed=5.5 name="John Doe"
例如: setprop health=150 speed=6.0 name=Player1
蓝图流程:
[Event] Callback_BPCommandSystem (Parameters)
↓
[Parse Named Parameters] (Parameters)
↓
├─ [Get Named Parameter As Int] (Key: "health") → Set Health
├─ [Get Named Parameter As Float] (Key: "speed") → Set Speed
└─ [Get Named Parameter] (Key: "name") → Set Name示例 3: 生成道具命令
命令格式: spawn item_name count x y z
例如: spawn Sword 5 100 200 300
蓝图流程:
[Event] Callback_BPCommandSystem (Parameters)
↓
├─ [Get Parameter] (Index: 0) → Item Name (String)
├─ [Get Parameter As Int] (Index: 1, Default: 1) → Count (Int)
└─ [Get Parameter As Vector] (Start Index: 2) → Location (Vector)
↓
[Spawn Item] (Item Name, Count, Location)实用工具函数
参数数量
Get Parameter Count (Parameters) → Count (Int)
示例:
输入: "one two three"
结果: 3分割参数
Split Parameters (Parameters, Delimiter: " ") → Array (Array<String>)
示例:
输入: "param1 param2 param3"
结果: ["param1", "param2", "param3"]移除引号
Remove Quotes (Parameter) → Result (String)
示例:
输入: '"Hello World"'
结果: "Hello World"验证函数
Is Valid Int (Parameter) → Result (Bool)
Is Valid Float (Parameter) → Result (Bool)
Is Valid Bool (Parameter) → Result (Bool)
示例:
"123" → IsValidInt = true
"abc" → IsValidInt = false
"3.14" → IsValidFloat = true
"true" → IsValidBool = true错误处理
所有解析函数都支持默认值,当参数无效或不存在时返回默认值:
Get Parameter As Int (Index: 999, Default: -1) → -1
Get Parameter As Float (Index: 999, Default: 0.0) → 0.0
Get Parameter As Bool (Index: 999, Default: false) → false性能优化建议
缓存解析结果: 如果需要多次使用同一参数,先解析并存储
使用批量函数: 需要所有参数时使用
Get All Parameters As Int/Float验证参数: 使用
Is Valid函数先验证再解析
常见使用场景
API 速查表
Get Parameter
Index, Default
String
获取字符串参数
Get Parameter As Int
Index, Default
Int
获取整数参数
Get Parameter As Float
Index, Default
Float
获取浮点数参数
Get Parameter As Bool
Index, Default
Bool
获取布尔值参数
Get Parameter As Vector
Start Index, Default
Vector
获取向量参数
Get Parameter As Rotator
Start Index, Default
Rotator
获取旋转参数
Get All Parameters As Int
-
Array
获取所有整数
Get All Parameters As Float
-
Array
获取所有浮点数
Parse Named Parameters
-
Map<String,String>
解析命名参数
Get Named Parameter
Key, Default
String
获取命名参数值
Split Parameters
Delimiter
Array
分割参数
Get Parameter Count
-
Int
获取参数数量
总结
使用 BlueprintConsoleCommandParser 可以:
✅ 大幅简化参数解析代码 ✅ 自动处理类型转换 ✅ 支持复杂的参数格式 ✅ 提供完善的错误处理 ✅ 提升开发效率和代码可读性
现在您可以专注于实现命令逻辑,而不是处理繁琐的字符串解析!🎉