vault backup: 2024-10-12 17:19:45
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Required
|
||||
|
||||
- **功能描述:** 指定函数的参数节点必须连接提供一个值
|
||||
|
||||
- **元数据类型:** bool
|
||||
- **引擎模块:** Blueprint, Parameter
|
||||
- **作用机制:** 在PropertyFlags中加入[CPF_RequiredParm](../../../../Flags/EPropertyFlags/CPF_RequiredParm.md)
|
||||
- **常用程度:** ★★
|
||||
|
||||
指定函数的参数节点必须连接个变量来提供一个值。
|
||||
|
||||
如果参数上有提供默认值,该标志依然会忽略默认值,认为还是没提供值。还是必须要连接变量。
|
||||
|
||||
## 测试代码:
|
||||
|
||||
```cpp
|
||||
//PropertyFlags: CPF_Parm | CPF_ZeroConstructor | CPF_RequiredParm | CPF_NoDestructor | CPF_HasGetValueTypeHash | CPF_NativeAccessSpecifierPublic
|
||||
UFUNCTION(BlueprintCallable)
|
||||
FString MyFuncTestParam_RequiredObject(UPARAM(Required) UObject* objValue);
|
||||
|
||||
//(CPP_Default_intValue = 123, ModuleRelativePath = Function/Param/MyFunction_TestParam.h)
|
||||
//PropertyFlags: CPF_Parm | CPF_ZeroConstructor | CPF_RequiredParm | CPF_IsPlainOldData | CPF_NoDestructor | CPF_HasGetValueTypeHash | CPF_NativeAccessSpecifierPublic
|
||||
UFUNCTION(BlueprintCallable)
|
||||
FString MyFuncTestParam_RequiredInt(UPARAM(Required) int intValue=123);
|
||||
```
|
||||
|
||||
## 蓝图节点:
|
||||
|
||||

|
||||
|
||||
如果不连一个节点,编译时会报错:
|
||||
|
||||
Pin Int Value must be linked to another node (in My Func Test Param Required Int )
|
||||
Pin Obj Value must be linked to another node (in My Func Test Param Required Object )
|
||||
|
||||
## 原理:
|
||||
|
||||
根据这个标记来判断。
|
||||
|
||||
```cpp
|
||||
const bool bIsRequiredParam = Param->HasAnyPropertyFlags(CPF_RequiredParm);
|
||||
// Don't let the user edit the default value if the parameter is required to be explicit.
|
||||
Pin->bDefaultValueIsIgnored |= bIsRequiredParam;
|
||||
```
|
Reference in New Issue
Block a user