当前位置: 首页>>代码示例>>C++>>正文


C++ UBTNode::InitializeFromAsset方法代码示例

本文整理汇总了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);
			}
		}
	}
}
开发者ID:1vanK,项目名称:AHRUnrealEngine,代码行数:46,代码来源:BehaviorTreeGraph.cpp

示例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);
        }
    }
}
开发者ID:kidaa,项目名称:UnrealEngineVR,代码行数:15,代码来源:BehaviorTreeGraphNode.cpp

示例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);
			}
		}
	}
}
开发者ID:Codermay,项目名称:Unreal4,代码行数:17,代码来源:BehaviorTreeGraphNode_CompositeDecorator.cpp

示例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);
        }
    }
}
开发者ID:kidaa,项目名称:UnrealEngineVR,代码行数:17,代码来源:BehaviorTreeGraphNode.cpp

示例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);
	}
}
开发者ID:zhaoyizheng0930,项目名称:UnrealEngine,代码行数:40,代码来源:BTNode.cpp


注:本文中的UBTNode::InitializeFromAsset方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。