推荐使用AIController的“Move To Location or Actor”函数,功能最全,源代码里面Move To Location和Move To Actor应该是AIMove等函数的爹,所以为了可拓展性咱们直接调用这个爹就行了。 4、如果使用behavior tree,请确认Lock AILogic选项没打勾,打了会妨碍行为树的正常运行。 5、如果不使用pathfinding导航(自由飞行)...
EBTNodeResult::TypeUBTTask_MoveTo::PerformMoveTask(UBehaviorTreeComponent&OwnerComp,uint8*NodeMemory){...EBTNodeResult::TypeNodeResult=EBTNodeResult::Failed;if(MyController&&MyBlackboard){// 设置AIMove的请求结构体FAIMoveRequestMoveReq;...// 根据黑板的key来设置是移动到actor 还是 locationif(Blackboa...
}//从新刷新全部的NavDataSet//UNavigationSystemV1::GetNavigationSystem(World)->Build();//生成完毕后的回调.会传入完成的NavDataSet//subSys->OnNavigationGenerationFinishedDelegate Q.中止已经在运行的SimpleMoveToActor或SimpleMoveToLocation: 参考源码的UAIBlueprintHelperLibrary::GetPathComp和UAIBlueprintHelperLi...
“随机漫游”后跟“到Location的简单移动Simple Move To Location”函数。 “Get controller获取控制器”函数返回值与“到Location的简单移动”的controller参数连接。 2.随机点 “获取半径内能到达的随机点”起点为当前AI的位置:“获取Actor位置”函数的返回值连接origin (起点) 调整半径为1000。(看个人需求) 返回值与...
UAIBlueprintHelperLibrary::SimpleMoveToLocation(this, CachedDestination); //使用Niagara生成生成粒子特效 UNiagaraFunctionLibrary::SpawnSystemAtLocation(this, FXCursor, CachedDestination, FRotator::ZeroRotator, FVector(1.f, 1.f, 1.f), true, true, ENCPoolMethod::None, true); ...
set actor location(设置位置) 01:20 add actor local rotation(旋转功能) 01:48 blueprint(创建蓝图) 01:47 add actor local offset(移动功能) 02:02 lookAt(朝向目标,注视某物体,看向对象) 03:15 set actor scale 3d (设置缩放) 01:23 set actor rotation(设置旋转 ) 01:42 actor和self reference(对...
UE_LOG(LogTemp, Warning, TEXT("New MoveTo result: %d"),(int32)MoveResult);}}}定义部分改为:// 假设这是头文件中的定义class AAIController;class AActor;// 定义属性UPROPERTY()class AAIController* EnemyController =nullptr;UPROPERTY(EditInstanceOnly, Category ="AI Navigation")class AActor* ...
将Rise函数的输出与MoveToComponet组件连接,然后我们需要一个Fall函数。简单做法:直接复制一个Rise函数,然后将其中个参数改为负值。-350。 回到事件图表中,然后将函数调用。完成替换。点击编译。保存。 编译报错:说我们的函数执行引脚未连接: 这个执行,可以理解为,你要调用这个函数,但是你要把函数放在哪个上下文中调用...
该函数用于更新Actor的transform时调用。例如SetActorRotation,SetActorPosition等函数,最终都会调用到MoveComponent函数,并对重叠进行更新 3.AActor::SetActorEnableCollision 这类函数用于改变组件的碰撞状态,同理还有设置组件的通道类型等函数。当组件的碰撞状态发生改变时,都会调用一次UpdateOverlaps以更新重叠。