官术网_书友最值得收藏!

Creating a NavArea class in C++

It's easy to create a NavArea class in C++ as well. First of all, you need to create a new C++ class that inherits from the NavArea class, as shown in the following screenshot:

By convention, the name should start with "NavArea_". Therefore, you can rename it NavArea_Desert (just to vary which kind of terrain the AI can face, since we created a Jungle previously) and place it in "Chapter3/Navigation":

Once you have created the class, you just need to assign the parameters in the constructor. For your convenience, here is the class definition in which we declare a simple constructor:

#include "CoreMinimal.h"
#include "NavAreas/NavArea.h"
#include "NavArea_Desert.generated.h"

/**
*
*/
UCLASS()
class UNREALAIBOOK_API UNavArea_Desert : public UNavArea
{
GENERATED_BODY()

UNavArea_Desert();

};

Then, in the implementation of the constructor, we can assign the different parameters. For instance, we can have a high cost for entering and a higher cost for traversing (with respect to the Default or the Jungle). Furthermore, we can set the color to Yellow so that we remember that it is a desert area:

#include "NavArea_Desert.h"

UNavArea_Desert::UNavArea_Desert()
{
DefaultCost = 1.5f;
FixedAreaEnteringCost = 3.f;
DrawColor = FColor::Yellow;
}
You can always play with these values to see which one works best for you. For instance, you can create an area with a very high entering cost, but a low traversal cost. As a result, you will have an area that, should be avoided if it's only going to be traversed for a little while, but if the agent traverses it for a long period of time, it might be more convenient than the shorter route.

Once you have created the class, you can set it as part of the Nav Modifier Volume, as shown in the following screenshot: 

As a result, you will be able to see your custom area in the Nav Mesh (in this case, with a Yellow Color):

主站蜘蛛池模板: 封开县| 嘉义县| 南靖县| 荔波县| 冷水江市| 修水县| 博客| 涟源市| 大田县| 安平县| 乐东| 鄢陵县| 秦皇岛市| 龙海市| 宝山区| 楚雄市| 莆田市| 杭锦旗| 阳谷县| 赤水市| 兴城市| 遂溪县| 宜宾市| 乐都县| 清涧县| 慈利县| 金溪县| 于都县| 陆川县| 仁化县| 扬州市| 大冶市| 永兴县| 蓬莱市| 乳山市| 镇平县| 广河县| 郸城县| 黄陵县| 广丰县| 大厂|