AnimInstanceProxy再动画蓝图中未定义
时间: 2024-02-10 20:10:30 浏览: 223
如果你在动画蓝图中使用FAnimInstanceProxy的GetSocketTransform()方法,需要先声明AnimInstanceProxy变量并初始化,才能调用该方法。
以下是在动画蓝图中声明和初始化AnimInstanceProxy的方法:
1. 在动画蓝图中添加一个变量
首先需要在动画蓝图中添加一个AnimInstanceProxy变量,用来存储FAnimInstanceProxy对象的引用。打开动画蓝图,点击左上角的“Add Variable”按钮,在弹出的窗口中输入变量名称和变量类型,然后点击“OK”按钮添加变量。
2. 在动画蓝图中初始化AnimInstanceProxy变量
在动画蓝图中初始化AnimInstanceProxy变量,需要使用以下方法:
```
void UYourAnimBlueprint::NativeInitializeAnimation()
{
Super::NativeInitializeAnimation();
// 初始化AnimInstanceProxy变量
if (GetOwningComponent() != nullptr)
{
UAnimInstance* animInstance = GetOwningComponent()->GetAnimInstance();
if (animInstance != nullptr)
{
AnimInstanceProxy = FAnimInstanceProxy(animInstance);
}
}
}
```
这里重写了动画蓝图的NativeInitializeAnimation()方法,在其中获取动画组件的AnimInstance对象,并将其传递给FAnimInstanceProxy的构造函数,初始化AnimInstanceProxy变量。
需要注意的是,如果你的动画蓝图是从AnimInstance派生的,需要在AnimInstance的NativeInitializeAnimation()方法中进行初始化。
阅读全文