栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

UE4C++笔记(一)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UE4C++笔记(一)

视频学习链接:UE4C++入门到精通合集

1. 基本数据类型

bool
uint8
int32
float
int64

FName:
FNames不区分大小写,它们为不可变,无法被操作。
FNames的存储系统和静态特性决定了通过键进行FNames的查找和访问速度较快。
FNames子系统的另一个功能是使用散列表为FName转换提供快速字符串。

FString:
FString可以搜索、修改、与其他字符串比较,不过,这些操作会导致FString的开销比不可变字符串类更大。这是因为FString对象保存自己的字符数组,而FName和FText对象保存共享字符数组的指针,并且可以完全根据索引值建立相等性

FText:
一般用于显示和文本本地化

FVector:
3维向量
FVector2D:
2维向量
FRotator:
翻滚角:Roll是围绕X轴旋转
俯仰角:Pitch是围绕Y轴旋转
偏航角:Yaw是围绕Z轴旋转
FTransform:
Location、Rotation、Scale、Mobility统称为变换

2. UE反射用到的宏 2.1 作用于类

成对使用,UCLASS():写在类上,GENERATED_BODY():写在类内,一般为第一行

UCLASS()
class HELLOUE_API AMyActor : public AActor
{
	GENERATED_BODY()
public:
	// Sets default values for this actor's properties
	AMyActor();
protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;
public:
	// Called every frame
	virtual void Tick(float DeltaTime) override;
};
2.2 作用于函数

UFUNCTION():

BlueprintCallable:
此函数可在蓝图或关卡蓝图图表中执行BlueprintPure:
此函数不对拥有它的对象产生任何影响,可在蓝图或关卡蓝图图表中执行BlueprintImplementableEvent:
需要在蓝图里面重载BlueprintNativeEvent:
此函数旨在被蓝图覆盖掉,但是也具有默认原生实现。
用于声明名称与主函数相同的附加函数,但是末尾添加了Implementation,是写入代码的位置。
如果未找到任何蓝图覆盖,该自动生成的代码将调用Implementation方法CallInEditor
可通过细节面板中的按钮在编辑器中的选定实例上调用此函数

UFUNCTION(BlueprintCallable)
void CollectMe(bool bDestroy = true);
2.3 作用于变量

UPROPERTY:

EditAnywhere
随处可见可变VisibleAnywhere
可见不可变EditDefaultsOnly
在类默认设置中可见BlueprintReadOnly
蓝图中只读BlueprintReadWrite
蓝图中可读可写EditInstanceOnly
可通过属性窗口进行编辑,只能在实例上进行,不能在原型上进行

UPROPERTY(EditAnywhere)
bool bCanBeCollected;
3. 命名风格

Axxx
继承自AActor以A开头命名Uxxx
继承自UObject,以U开头命名Fxxx
原生C++类型,以F开头命名Exxx
枚举Enum,以E开头命名Ixxx
接口Interface,以I开头命名Sxxx
slate相关的,以S开头命名 4. 枚举&结构体 4.1 枚举

UENUM(BlueprintType) 
enum ECustomColorType { // C++98
	RED,
	BLUE,
	YELLOW
};

UENUM(BlueprintType)
enum class ECustomColorType : uint8 { // C++11,推荐使用这种风格
	RED,
	YELLOW,
	BLUE
};
4.2 结构体
USTRUCT(BlueprintType)
struct MyStruct
{
	GENERATED_USTRUCT_BODY()
public:
	UPROPERTY(EditAnywhere)
	int32 num;
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/768122.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号