UE4 C++学习笔记之创建Object类

1、在UE4 C++工程中,以Object为父类,新建C++类MyObject,并且在VS中为该类添加public变量和函数

MyObject.h头文件编辑如下:


#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "MyObject.generated.h"

/**
 * 
 */
//UCLASS表示反射为系统自动生成,其中的Blueprintable表示可以由该c++类生成蓝图类。
UCLASS(Blueprintable)  

class LEARNTEST_API UMyObject : public UObject
{
    GENERATED_BODY()

public:

    UMyObject();
    
    //UPROPERTY可以理解为修饰符,用来改变变量的一些性质,如下即表示该变量可在蓝图中读写。                
    UPROPERTY(BlueprintReadWrite) 
    float MyFloat;

    UPROPERTY(BlueprintReadWrite)
    float MyFloat2;

    //UFUNCTION的作用和UPROPERTY同理
    UFUNCTION(BlueprintCallable)
    void MyFuntion();
};

MyObject.c文件编辑如下:

// Fill out your copyright notice in the Description page of Project Settings.


#include "MyObject.h"

UMyObject::UMyObject()
{
    MyFloat = 0;
    MyFloat2 = 0;
}

void UMyObject::MyFuntion()
{
    //UE4自带库函数,用来打印日志信息。
    UE_LOG(LogTemp, Warning, TEXT("call my function"));
}

2、通过c++类创建相应的蓝图类,并且在场景中的BP_Actor类对其进行使用,在关卡开始时打印日志信息"call my funtion"

注:因为Object类无法直接拖拽到关卡场景中,应该在场景中放置一个Actor类,在Actor类中添加MyObject类型的变量以调用其公共函数。

BP_Actor蓝图编辑界面如下:

输出日志如下:

猜你喜欢

转载自blog.csdn.net/weixin_44928892/article/details/107897637