1135人加入学习
(1人评价)
【旧版】Unreal初级课程 - 3D吃豆人

旧版课程,制作完成于2018-03-29,基于Unreal 4.18

价格 免费
课程还未发布,不允许加入和购买

关于UNavigationSystem过时的问题,针对当前此课程给出的解决方案:

#include "AIEnemy.h"
#include "NavigationSystem.h"

void AAIEnemy::OnPossess(APawn *InPawn) {
    Super::OnPossess(InPawn);
    Bot = Cast<AEnemy>(InPawn);
}

void AAIEnemy::OnMoveCompleted(FAIRequestID RequestID, const FPathFollowingResult &Result) {

}

void AAIEnemy::SearchNewPoint() {
    // 获取导航系统
    UNavigationSystemV1* NavMesh = FNavigationSystem::GetCurrent<UNavigationSystemV1>(GetWorld());
    if (NavMesh) {
        const float SearchRadius = 1000.0f; // 搜索半径
        FNavLocation RandomPt; // 随机位置

        // 判断是否能找到该位置
        const bool bFound = NavMesh->GetRandomReachablePointInRadius(Bot->GetActorLocation(), SearchRadius, RandomPt);
        if (bFound) {
            // 移动到获取的随机位置点
            MoveToLocation(RandomPt);
        }
    }
}

在Build.cs源文件中,找到

PublicDependencyModuleNames代码,在数组中添加“NavigationSystem”
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "NavigationSystem" });

 

[展开全文]

AttachTo方法过时,需要使用以下代码形式:

CollectableMesh->AttachToComponent(BaseCollisionComponent, FAttachmentTransformRules::KeepRelativeTransform);

 

[展开全文]

授课教师

SIKI学院老师

课程特色

图文(1)
下载资料(1)
视频(30)