[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
设置自定义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);