60 lines
1.4 KiB
Markdown
60 lines
1.4 KiB
Markdown
# Deprecated
|
||
|
||
- **功能描述:** 标识该FRigUnit为弃用状态,不在蓝图右键菜单中显示。
|
||
- **使用位置:** USTRUCT
|
||
- **引擎模块:** RigVMStruct
|
||
- **元数据类型:** bool
|
||
- **限制类型:** FRigUnit类型上
|
||
- **常用程度:** ★★
|
||
|
||
标识该FRigUnit为弃用状态,不在蓝图右键菜单中显示。
|
||
|
||
但如果之前已经在蓝图中使用了,则还是可以继续使用。
|
||
|
||
注意这个时候要相应的实现GetUpgradeInfo(),否则会报错。
|
||
|
||
## 测试代码:
|
||
|
||
```cpp
|
||
USTRUCT(meta = (DisplayName = "MyRigDeprecated",Deprecated))
|
||
struct INSIDER_API FRigUnit_MyRigDeprecated : public FRigUnit
|
||
{
|
||
GENERATED_BODY()
|
||
|
||
RIGVM_METHOD()
|
||
virtual void Execute() override;
|
||
|
||
RIGVM_METHOD()
|
||
virtual FRigVMStructUpgradeInfo GetUpgradeInfo() const override;
|
||
public:
|
||
UPROPERTY(meta = (Input))
|
||
float MyFloat_Input = 123.f;
|
||
|
||
UPROPERTY(meta = (Output))
|
||
float MyFloat_Output = 123.f;
|
||
};
|
||
```
|
||
|
||
## 测试效果:
|
||
|
||

|
||
|
||
## 原理:
|
||
|
||
在构建菜单项的时候略过Deprecated的节点。
|
||
|
||
```cpp
|
||
void FRigVMEditorModule::GetTypeActions(URigVMBlueprint* RigVMBlueprint, FBlueprintActionDatabaseRegistrar& ActionRegistrar)
|
||
{
|
||
// Add all rig units
|
||
for(const FRigVMFunction& Function : Registry.GetFunctions())
|
||
{
|
||
// skip deprecated units
|
||
if(Function.Struct->HasMetaData(FRigVMStruct::DeprecatedMetaName))
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
```
|