[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);

猜你喜欢

转载自aigo.iteye.com/blog/2285772
今日推荐