目标是一个UE4小RPG(一)

来源:互联网 发布:深入解析wpf编程 编辑:程序博客网 时间:2024/06/05 21:01

      前一阵搞了蓝图,大概有些了解吧,但是还是想弄弄C++,所以开始写这个,但是实在太菜了所以可能开了这个坑就不写了,只能说尽力而为。


      首先,创建一个附带初学者内容的第三人称C++模板。进去之后,留下光照、大气蓝图、第三人称角色蓝图。然后去地貌栏重构一个地貌,然后添加草地(怎么做就不说了)。大概是下面这样:

现在呢是想做一个NPC,玩家碰撞后即可产生一个小对话(也就是一个非剧情类的NPC),对话直接产生在NPC头上。

开始代码部分:

使用的版本是4.13

为我们的项目添加一个Character类命名为NPC并且根绝该类生成一个蓝图NPC_01,由于资源问题,我们直接导入现有的骨架并且动画栏动画类选择ThirdPerson_AnimBP.

.h文件:

public:

//NPC的实例化
    ANPC(const FObjectInitializer& ObjectInitializer);
  
//一个球形的碰撞体(恩,可以这么理解)
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Collision)
        class USphereComponent* ProxSphere;
//当玩家进入这个碰撞体范围内将触发的事件
    UFUNCTION()
        void OnoverlapBegin(UPrimitiveComponent* OverlappedComponent,AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 otherBodyIndex, bool bFromSweep,
            const FHitResult & SweepResult);
   
.cpp

ANPC::ANPC(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) {

//初始化

    ProxSphere = ObjectInitializer.CreateDefaultSubobject<USphereComponent>(this, TEXT("NPCProxSphere"));

//添加到根节点

    ProxSphere->AttachTo(RootComponent);

//动态触发事件

    ProxSphere->OnComponentBeginOverlap.AddDynamic(this, &ANPC::OnoverlapBegin);
    
}

void ANPC::OnoverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor * OtherActor, UPrimitiveComponent * OtherComp, int32 otherBodyIndex, bool bFromSweep, const FHitResult & SweepResult)
{

//这里的代码 需要在创建HUD之后给出

}














0 0
原创粉丝点击