求教AIController中调用MoveToActor,无法触发RequestDirectMove的问题.

[复制链接]
查看2287 | 回复3 | 2017-10-15 17:03:48 | 显示全部楼层 |阅读模式
如题,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:23 | 显示全部楼层
复写 方法里 没有调用父类的  方法名没有 override 关键字
回复 支持 反对

使用道具 举报

powers0010 | 2017-10-16 12:18:21 | 显示全部楼层
mknmknmk 发表于 2017-10-16 11:22
复写 方法里 没有调用父类的  方法名没有 override 关键字

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

使用道具 举报

mknmknmk | 2017-10-16 13:43:32 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

24

主题

436

回帖

1797

积分

中阶编码师

积分
1797
QQ