引擎世界丨EngineWorld.CN

标题: 求教AIController中调用MoveToActor,无法触发RequestDirectMove的问题. [打印本页]

作者: powers0010    时间: 2017-10-15 17:03
标题: 求教AIController中调用MoveToActor,无法触发RequestDirectMove的问题.
如题,AIController调用MoveToActor,在Pawn中覆写RequestDirectMove来控制移动,本来好好地,突然就没用反应了,求教。AIController里面:

void AAITankController::Tick(float DeltaTime)
{
        Super::Tick(DeltaTime);

        auto PlayerTank = GetWorld()->GetFirstPlayerController()->GetPawn();
        auto ControlledPawn = GetPawn();

        if (!PlayerTank || !ControlledPawn) { return; }

                //向玩家移动
        MoveToActor(PlayerTank,AcceptRadiu);     //在这里调用MoveToActor

}

//Pawn的MovementComponent里面
void UTankMovementComponent::RequestDirectMove(const FVector& MoveVelocity, bool bForceMaxSpeed)
{
        UE_LOG(LogTemp, Warning, TEXT("Moveing to actor"));
}

       



作者: mknmknmk    时间: 2017-10-16 11:22
复写 方法里 没有调用父类的  方法名没有 override 关键字
作者: powers0010    时间: 2017-10-16 12:18
mknmknmk 发表于 2017-10-16 11:22
复写 方法里 没有调用父类的  方法名没有 override 关键字

我是属于覆写啊。。。。。
“要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。”
“override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。”
看意思,应该是需要的吧
作者: mknmknmk    时间: 2017-10-16 13:43
https://wiki.unrealengine.com/De ... ebug_Packaged_Games

debug 一下




欢迎光临 引擎世界丨EngineWorld.CN (https://www.engineworld.cn/) Powered by Discuz! X3.5