虚幻c++ 关于怎么使用宏UFUNCTION
首先什么UFUNCTION,功能就是一个可以在虚幻界面上输入指令运行函数!
首先!我们想要一个功能!
什么功能呢!
就是输入指令来运行函数打印日志!
老规矩!
MyGameModeBase.h
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyGameModeBase.generated.h"
/**
*
*/
UCLASS()
class CPP_OBEJCT_API AMyGameModeBase : public AGameModeBase
{
GENERATED_BODY()
protected:
virtual void BeginPlay() override;
//这是一个指令函数,设置后,可以在虚幻窗口输入函数名字,就可以运行该函数了
UFUNCTION(Exec)
void SelfDestoryActors();
public:
//直接新建一个全局变量!然后就可以在所有函数中使用了!
AActor* MyActor;
};
MyGameModeBase.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "MyGameModeBase.h"
#include "MyActor.h"
void AMyGameModeBase::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp, Log, TEXT("你好世界!"));
//动态生成actor操作!
//GetWorld()->SpawnActor<AMyActor>();
MyActor = GetWorld()->SpawnActor(AMyActor::StaticClass());
}
//这是新建的一个函数,主要要用静态变量来引用!
void AMyGameModeBase::SelfDestoryActors() {
GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, TEXT("ACB"));
GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, TEXT("你好世界!"));
UE_LOG(LogTemp, Log, TEXT("你好世界!"));
if (MyActor) {
MyActor->Destroy();
}
}
然后记得,f7编译一下!
运行虚幻!
输入函数名字!
这下子就出来了!