真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

19uec++多人游戲【基礎(chǔ)AI導(dǎo)航】-創(chuàng)新互聯(lián)

首先把這一期的資源導(dǎo)入一下

站在用戶的角度思考問題,與客戶深入溝通,找到北辰網(wǎng)站設(shè)計與北辰網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋北辰地區(qū)。

創(chuàng)建一個球體類,繼承于pawn類

為其添加靜態(tài)組件

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Components")
	class UStaticMeshComponent * MeshComponent;

==================================================================
#include "Components/StaticMeshComponent.h"

MeshComponent = CreateDefaultSubobject(TEXT("MeshComponent"));
RootComponent = MeshComponent;

編譯,為其創(chuàng)建藍(lán)圖類

為其組件設(shè)為一個球體

拖到場景中,發(fā)現(xiàn)太大了

我們?yōu)槠鋭?chuàng)建一個小球網(wǎng)格體模型

首先創(chuàng)建一個文件夾

我們把這個小球網(wǎng)格體復(fù)制到我們這個文件夾下面

重命名一下這個網(wǎng)格體

進(jìn)入這個網(wǎng)格體,修改一下比例

在類中換上這個網(wǎng)格體

shift+end讓其緊貼地面

然后創(chuàng)建材質(zhì)文件

先將材質(zhì)設(shè)為白色

在網(wǎng)格體中賦予材質(zhì)

把導(dǎo)航體拖入場景中

然后我們拉大體積,讓其覆蓋整個地面

然后讓其嵌入到地板底下

按一下p,就可以顯示導(dǎo)航的范圍

我們可以看到,球體本身也會影響導(dǎo)航

小球mesh組件里面,去掉這個勾

我們?yōu)檫@個小球,寫藍(lán)圖

然后為我們的小球隨便添加一個移動組件

編譯,測試,小球開局真的動了?

現(xiàn)在我們將移動邏輯寫的更復(fù)雜一點(diǎn)

將移動速度變小,發(fā)現(xiàn)小球一直在我們屁股后面追

====================================

我們繼續(xù)提高邏輯,讓其自動添加路徑

首先自定義事件

測試,已經(jīng)畫出了路徑點(diǎn)

在c++文件中加上這個

在小球頭文件中,添加三個變量

//移動速度
	UPROPERTY(EditDefaultsOnly, Category = "TracerBot")
	float MovementForce;

	//是否讓移動速度改變
	UPROPERTY(EditDefaultsOnly, Category = "TracerBot")
	bool bUseVelocityChange;

	//移動到目標(biāo)的閾值
	UPROPERTY(EditDefaultsOnly, Category = "TracerBot")
	float RequiredDistanceToTarget;

在構(gòu)造函數(shù)中初始化這三個變量,并將mesh組件的模擬物理激活

AASTrackerBot::AASTrackerBot()
{
 	// Set this pawn to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;
	MeshComponent = CreateDefaultSubobject(TEXT("MeshComponent"));
	MeshComponent->SetSimulatePhysics(true);
	RootComponent = MeshComponent;

	MovementForce = 1000;
	bUseVelocityChange = false;
	RequiredDistanceToTarget = 100;
}

在小球的頭文件中,添加尋找路徑點(diǎn)的函數(shù),和路徑點(diǎn)變量

FVector GetNextPathPoint();
//路徑點(diǎn)
	FVector NextPathPoint;
#include "Components/StaticMeshComponent.h"
#include "GameFramework/Character.h"
#include"Kismet/GamePlayStatics.h"
#include "NavigationSystem.h"
#include "NavigationPath.h"
#include "DrawDebugHelpers.h"

定義這個函數(shù)

FVector AASTrackerBot::GetNextPathPoint()
{
	//得到0號玩家
	ACharacter *playerPawn = UGameplayStatics::GetPlayerCharacter(this, 0);
	//找到通往玩家的路徑
	UNavigationPath *NavPath = UNavigationSystemV1::FindPathToActorSynchronously(this, GetActorLocation(), playerPawn);
	if (NavPath->PathPoints.Num() >1)
	{
		//返回第二個點(diǎn)
		return NavPath->PathPoints[1];
	}
	else
	{
		return GetActorLocation();
	}
}

在游戲開始函數(shù)中,調(diào)用這個函數(shù)

void AASTrackerBot::BeginPlay()
{
	Super::BeginPlay();
	NextPathPoint = GetNextPathPoint();
}

在每幀函數(shù)里,不斷得去移動

void AASTrackerBot::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	//得到小球自身與下一個點(diǎn)的距離
	float DistanceToTarget = (NextPathPoint - GetActorLocation()).Size();
	//如果大于閾值,就繼續(xù)滾
	if (DistanceToTarget >RequiredDistanceToTarget)
	{
		//小球的移動方向
		FVector ForceDirection = NextPathPoint - GetActorLocation();
		ForceDirection.Normalize();
		//小球的推力
		ForceDirection *= MovementForce;
		MeshComponent->ComponentVelocity.Size();
		MeshComponent->AddImpulse(ForceDirection, NAME_None, bUseVelocityChange);
		DrawDebugDirectionalArrow(GetWorld(), GetActorLocation(), GetActorLocation() + ForceDirection, 32, FColor::Red, false, 0.0f, 0, 1.0f);
	}
	//如果到達(dá)了路徑點(diǎn),就生成下一個點(diǎn),繼續(xù)移動
	else
	{
		NextPathPoint = GetNextPathPoint();
		DrawDebugString(GetWorld(), GetActorLocation(), "Target Reached!");
	}
	//在下一個目標(biāo)點(diǎn)畫一個球
	DrawDebugSphere(GetWorld(), NextPathPoint, 20, 12, FColor::Yellow, false, 0.0f, 0, 1.0f);

}

編譯,然后在小球的mesh組件里面,勾上模擬物理

測試成功

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


文章題目:19uec++多人游戲【基礎(chǔ)AI導(dǎo)航】-創(chuàng)新互聯(lián)
文章來源:http://weahome.cn/article/dphgpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部