UE4_AActor类

UNREAL UCLASS
  1.  UClass 类型对象可以在蓝图内访问
  2. UClass类型的属性可以在蓝图内访问
  3. UClass的方法可以在蓝图内被调用
  4. UClass的生命周期由引擎内部管理,区别于普通于普通C++的class由new,delete控制
UClass的定义
1.  所有UClass在开头必须加入UClass()宏,指定这个类是一个虚幻的UClass
2.  类如果从UObject继承必须以大写U开头
3. 类如果从AActor继承必须以大写A开头
4. 从UObject继承来的类不能被放置到场景中去
5.  包含UClass定义的.h文件最后一个#include必须是<"你的class的名字">.generated.h
6. 类定义开头必须包含GENERATED_BODY()或GENERATED_UClASS_BODY()
UCLASS()的关键字
 1.  UCLASS()宏的括号内可以包含关键字
 2. 关键字定义了这个UClass在编辑器内的表现形式
 3. Blueprintable,NotBlueprintable:是否可以由蓝图继承此UClass
 4. BlueprintType,NotBlueprintType:此类型是否可以声明为蓝图中的变量
 5. 全部UCLASS关键字定义文件搜索ObjectMacros.h中namespace UC段
C++索引子类型
1.  UPROPERTY(EditAnyWhere)
TSubclassOf<UUserProfile> UserProfileClass;
2.作为一个子类型变量,用来保存任何从<>中继承的子类型的UClass类型
UCLASS的创建
 1. 使用引擎提供的NewObject<>模板方法
 2. NewObject<>等价于C++中的new
 3. NewObject<>只用于从UObject,AActor继承来的子类
UFUNCTION
 1.  用来修饰C++内定义的函数
 2.  通过定义关键字BlueprintCallable,来让函数可以在蓝图内被调用
未完
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
封装是面向对象编程的一项基本特征,用于隐藏的内部实现细节,使得外部只能通过的公共接口来访问的成员变量和成员函数。在UE5.1中,继承AActor编写的C++代码也可以进行封装。 具体实现方法如下: 1. 将的成员变量和成员函数分为私有(private)、公共(public)和受保护(protected)三种类型。 2. 私有成员变量和成员函数一般只能在内部访问,外部无法直接访问。可以使用get和set函数来对私有成员变量进行访问和修改。 3. 公共成员变量和成员函数可以被外部访问,通常用于提供的接口。 4. 受保护成员变量和成员函数可以在派生中访问,但在外部无法访问。 下面是一个简单的示例代码,演示了如何对AActor的派生进行封装: ``` // Header File #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "MyActor.generated.h" UCLASS() class MYPROJECT_API AMyActor : public AActor { GENERATED_BODY() public: // 构造函数 AMyActor(); // 公共成员函数 UFUNCTION(BlueprintCallable, Category = "MyActor") void MyFunction(); protected: // 受保护成员变量 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyActor") float MyProtectedVariable; private: // 私有成员变量 int MyPrivateVariable; // 私有成员函数 void MyPrivateFunction(); }; // CPP File #include "MyActor.h" AMyActor::AMyActor() { // 设置默认值 MyProtectedVariable = 0.0f; MyPrivateVariable = 0; } void AMyActor::MyFunction() { // TODO: 在这里实现函数代码 } void AMyActor::MyPrivateFunction() { // TODO: 在这里实现私有函数代码 } int AMyActor::GetMyPrivateVariable() { return MyPrivateVariable; } void AMyActor::SetMyPrivateVariable(int NewValue) { MyPrivateVariable = NewValue; } ``` 在上面的示例代码中,我们定义了一个派生自AActorAMyActor,并对的成员变量和成员函数进行了封装。其中,MyProtectedVariable是一个受保护的成员变量,可以在派生中访问;MyPrivateVariable是一个私有的成员变量,外部无法直接访问,但可以通过Get和Set函数进行访问和修改;MyFunction是一个公共的成员函数,可以被外部调用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值