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;
};
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值