本文整理汇总了C++中UBTNode::InitializeFromAsset方法的典型用法代码示例。如果您正苦于以下问题:C++ UBTNode::InitializeFromAsset方法的具体用法?C++ UBTNode::InitializeFromAsset怎么用?C++ UBTNode::InitializeFromAsset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UBTNode
的用法示例。
在下文中一共展示了UBTNode::InitializeFromAsset方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateBlackboardChange
void UBehaviorTreeGraph::UpdateBlackboardChange()
{
UBehaviorTree* BTAsset = Cast<UBehaviorTree>(GetOuter());
if (BTAsset == nullptr)
{
return;
}
for (int32 Index = 0; Index < Nodes.Num(); ++Index)
{
UBehaviorTreeGraphNode* MyNode = Cast<UBehaviorTreeGraphNode>(Nodes[Index]);
if (MyNode)
{
UBTNode* MyNodeInstance = Cast<UBTNode>(MyNode->NodeInstance);
if (MyNodeInstance)
{
MyNodeInstance->InitializeFromAsset(*BTAsset);
}
}
for (int32 iDecorator = 0; iDecorator < MyNode->Decorators.Num(); iDecorator++)
{
UBTNode* MyNodeInstance = MyNode->Decorators[iDecorator] ? Cast<UBTNode>(MyNode->Decorators[iDecorator]->NodeInstance) : NULL;
if (MyNodeInstance)
{
MyNodeInstance->InitializeFromAsset(*BTAsset);
}
UBehaviorTreeGraphNode_CompositeDecorator* CompDecoratorNode = Cast<UBehaviorTreeGraphNode_CompositeDecorator>(MyNode->Decorators[iDecorator]);
if (CompDecoratorNode)
{
CompDecoratorNode->OnBlackboardUpdate();
}
}
for (int32 iService = 0; iService < MyNode->Services.Num(); iService++)
{
UBTNode* MyNodeInstance = MyNode->Services[iService] ? Cast<UBTNode>(MyNode->Services[iService]->NodeInstance) : NULL;
if (MyNodeInstance)
{
MyNodeInstance->InitializeFromAsset(*BTAsset);
}
}
}
}
示例2: PostEditImport
void UBehaviorTreeGraphNode::PostEditImport()
{
ResetNodeOwner();
if (NodeInstance)
{
UBehaviorTree* BT = Cast<UBehaviorTree>(GetBehaviorTreeGraph()->GetOuter());
if (BT)
{
UBTNode* BTNode = (UBTNode*)NodeInstance;
BTNode->InitializeFromAsset(*BT);
BTNode->InitializeNode(NULL, MAX_uint16, 0, 0);
}
}
}
示例3: OnBlackboardUpdate
void UBehaviorTreeGraphNode_CompositeDecorator::OnBlackboardUpdate()
{
UBehaviorTreeDecoratorGraph* MyGraph = Cast<UBehaviorTreeDecoratorGraph>(BoundGraph);
UBehaviorTree* BTAsset = Cast<UBehaviorTree>(GetOuter()->GetOuter());
if (MyGraph && BTAsset)
{
for (int32 i = 0; i < MyGraph->Nodes.Num(); i++)
{
UBehaviorTreeDecoratorGraphNode_Decorator* MyNode = Cast<UBehaviorTreeDecoratorGraphNode_Decorator>(MyGraph->Nodes[i]);
UBTNode* MyNodeInstance = MyNode ? Cast<UBTNode>(MyNode->NodeInstance) : NULL;
if (MyNodeInstance)
{
MyNodeInstance->InitializeFromAsset(*BTAsset);
}
}
}
}
示例4: PostPlacedNewNode
void UBehaviorTreeGraphNode::PostPlacedNewNode()
{
UClass* NodeClass = ClassData.GetClass(true);
if (NodeClass)
{
UBehaviorTree* BT = Cast<UBehaviorTree>(GetBehaviorTreeGraph()->GetOuter());
if (BT)
{
NodeInstance = ConstructObject<UBTNode>(NodeClass, BT);
UBTNode* BTNode = (UBTNode*)NodeInstance;
BTNode->SetFlags(RF_Transactional);
BTNode->InitializeFromAsset(*BT);
BTNode->InitializeNode(NULL, MAX_uint16, 0, 0);
}
}
}
示例5: InitializeInSubtree
void UBTNode::InitializeInSubtree(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, int32& NextInstancedIndex, EBTMemoryInit::Type InitType) const
{
FBTInstancedNodeMemory* SpecialMemory = GetSpecialNodeMemory<FBTInstancedNodeMemory>(NodeMemory);
if (SpecialMemory)
{
SpecialMemory->NodeIdx = INDEX_NONE;
}
if (bCreateNodeInstance)
{
// composite nodes can't be instanced!
check(IsA(UBTCompositeNode::StaticClass()) == false);
UBTNode* NodeInstance = OwnerComp.NodeInstances.IsValidIndex(NextInstancedIndex) ? OwnerComp.NodeInstances[NextInstancedIndex] : NULL;
if (NodeInstance == NULL)
{
NodeInstance = (UBTNode*)StaticDuplicateObject(this, &OwnerComp);
NodeInstance->InitializeNode(GetParentNode(), GetExecutionIndex(), GetMemoryOffset(), GetTreeDepth());
NodeInstance->bIsInstanced = true;
OwnerComp.NodeInstances.Add(NodeInstance);
}
check(NodeInstance);
check(SpecialMemory);
SpecialMemory->NodeIdx = NextInstancedIndex;
NodeInstance->SetOwner(OwnerComp.GetOwner());
NodeInstance->InitializeMemory(OwnerComp, NodeMemory, InitType);
check(TreeAsset);
NodeInstance->InitializeFromAsset(*TreeAsset);
NodeInstance->OnInstanceCreated(OwnerComp);
NextInstancedIndex++;
}
else
{
InitializeMemory(OwnerComp, NodeMemory, InitType);
}
}