[UE4Pawn、Character设置AI Controller class的方法

 

只有继承自Pawn的类才有AI Class,Actor是Pawn的父类,所以Actor没有AI Class属性。

 

设置默认Controller

设置默认Controller的方式是:MyPawn->SpawnDefaultController()

AICharacter* const Bot = GetWorld()->SpawnActor(BotClass, SpawnLoc, SpawnRot, SpawnParams);
if(Bot)
{
	Bot->SpawnDefaultController();
}

但是,仅仅调用这一个函数不够,还需要再你的Pawn构造函数设置属性AutoPossessAI

AutoPossessAI = EAutoPossessAI::PlacedInWorldOrSpawned;

 

 

对应的蓝图属性,修改角色蓝图的Auto Possess AI属性:Placed In World or Spawned

[UE4Pawn、Character设置AI Controller class的方法_第1张图片
 

 

设置自定义Controller

MyControllerAI = GetWorld()->SpawnActor<AAIController>(AAIController::StaticClass());
MyPawn = GetWorld()->SpawnActor<AMyPawn>(AMyPawn::StaticClass());
MyControllerAI->SetPawn(MyPawn);

 之后就可以用自定义Controller来控制Pawn、Character移动了,例如:

NavSys->SimpleMoveToLocation(MyControllerAI , DestLocation);

 或者:

MyControllerAI->MoveToLocation(DestLocation);

 

你可能感兴趣的:(UE4)